Close up shadows on the tree. Notice that leaves (modeled by alpha-test texture) also cast correct shadows.
Water reflections by optimized GeneratedCubeMapTexture
Mirrors by RenderedTexture, by Victor Amat

Scene graph (X3D)

The engine core is a scene graph using nodes defined by the X3D specification.

Simply put, X3D (and it's older version, VRML) is a file format for 3D models. You will find that virtually any 3D modelling program can export to it, for exampe Blender includes VRML and X3D exporters (and we also have our own customized exporter).

To start the fun, just create some VRML/X3D models (or download them from the Internet, or grab our VRML/X3D demo models) and open them with our view3dscene.

As a 3D file format, VRML/X3D is quite unique because it's designed to describe virtual 3D worlds, not just static scenes. So you can do animations, interactive behaviors (e.g. open the door when user presses a handle), and scripting right inside the VRML/X3D file. Many advanced graphic effects are also possible, like making mirrors by generated (cube map or flat) textures, using GLSL shaders and much more.

The specifications for X3D (and older VRML) are available here. This is your ultimate resource to learn what you can do with VRML/X3D. The older versions were called VRML (VRML 1.0, then VRML 2.0 also known as VRML 97). Newer versions are called X3D (3.x). I collectively call them all VRML/X3D because our engine handles all versions of them. You probably want to use the newest one, X3D, whenever possible.

Pages in this section describe our handling of VRML/X3D: how we handle the stuff in official VRML/X3D specification and what new features we add to VRML/X3D.