Not much time has been spent thus far to produce some good-looking demos for XEngine. And although
it is of utmost importance to demonstrate the power of a good engine with good-looking screenshots,
the images on this page will have to do for now. Please bear in mind that programmer art is a terrible, terrible thing :)
Render to Texture
This screenshot shows the RenderToTexture2D sample of XEngine. First a moving quad is rendered
into a 2D texture, which then gets multi-textured on the moving cube.
This screenshot shows the EarthBump demo of XEngine which is a port of a similar demo in NVIDIA's
Environment Cube Mapping
Here you can see environment cube mapping in action. The two cubes move around the sphere and
are dynamically reflected in it. Also the skybox surrounding the entire scene is reflected in the sphere.
With XEngine's simple interface for using render-to-texture, writing something like this is really
This is the same sample application as above. But now in addition to computing reflection
refraction with chromatic dispersion is also computed.
Cg Vertex Shader
This is a screenshot of the Cg vertex shader sample. A Cg vertex shader is used to dynamically
change the vertex colors of the rotating cube. Handling Cg vertex shaders in XEngine is no different
than using NV_vertex_program or a DirectX shader. Whatever shading language you decide to use,
the handling with XEngine is the same. Also note that you do not necessarily need to link with the
NVIDIA Cg runtime to use Cg shaders. XEngine comes with its own, built-in Cg runtime that only
requires the Cg compiler executable.
This screenshot shows a flag blowing in the wind. The wind is simulated using a Cg vertex
shader that changes the z co-ordinates of the grid mesh vertices. It's really very simple,
but it looks quite nice.
3DS Model Loader
This is a 3D model of Ike from the series South Park loaded from
a 3DS file with the the corresponding model loader class.
MD2 Model Loader
This is an animated MD2 model loaded from a file. The image shows a number of animation
keyframes of the model.
Fixed-Function Fragment Shading
This composed image shows various shots of the Simple2 sample application of
A decal texture and a 1-dimensional pattern texture are blended together
using the fixed-function fragment shading language of XEngine which is used
to program (or better, configure) the fixed-function texture blending stages.
This not really very exciting image shows the volume texture sample
of XEngineCore. It's a port of the corresponding Direct3D sample to XEngine.
A volume texture is filled with random colors and the texture coordinates
used to address the texture are changed each frame creating a pulsating
Projective Texture Mapping
This is a screenshot of the ProjectedTexture1 and ProjectedTexture2
samples. Both samples project the smiley texture onto the scene using
projective texture mapping. As you can see, the texture is not only
visible on the back wall but also on the boxes in the middle of the
room. The ProjectedTexture1 requires only one texture sampler stage
and achieves the effect by using multipass rendering, whereas the
ProjectedTexture2 sample requires two texture sampler stages and
achieves the effect by using multitexturing.
This screenshot shows the HeightMap sample which reads a height map
image and constructs the terrain geometry from it. The water is
animated by a vertex shader and using different caustic textures.