|Microsoft DirectX 9.0|
The Stencil Mirror sample uses stencil buffers to implement a mirror effect. In the sample, a watery terrain scene is rendered with the water reflecting a helicopter that flies above.
Stencil buffers are a depth-buffer technique that can be updated as geometry is rendered, and used again as a mask for drawing more geometry. Common effects include mirrors, shadows (an advanced technique), dissolves, and so on.
Not all cards support all features for stencil buffer techniques. Some hardware has no, or limited, stencil buffer support. For more information about stencil buffers, refer to the Microsoft?DirectX® software development kit (SDK) documentation.
Source: (SDK root)\Samples\C++\Direct3D\StencilBuffer\StencilMirror
Executable: (SDK root)\Samples\C++\Direct3D\Bin
The following table lists the keys that are implemented. You can use menu commands for the same controls.
|ENTER||Starts and stops the scene.|
|SPACEBAR||Advances the scene by a small increment.|
|F2||Prompts the user to select a new rendering device or display mode.|
|ALT+ENTER||Toggles between full-screen and windowed modes.|
|ESC||Exits the application.|
In this sample, a stencil buffer is used to create the effect of a reflection coming off the water. The geometry of the water is rendered into the stencil buffer. Then the stencil buffer is used as a mask to render the scene again, this time with the geometry translated and rendered upside down, to appear as if it were reflected in the mirror.
This sample uses common DirectX code that consists of programming elements such as helper functions. This code is shared with other samples in the DirectX SDK. You can find the sample framework headers and source code in (SDK root)\DXSDK\Samples\C++\Common\Include and (SDK root)\DXSDK\Samples\C++\Common\Src.