//----------------------------------------------------------------------------- // Name: StencilMirror Direct3D Sample // // Copyright (c) 1998-2001 Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- Description =========== The StencilMirror 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, etc.. Note that not all cards support all features for all the various stencil buffer techniques (some hardware has no, or limited, stencil buffer support). For more information on stencil buffers, refer to the DirectX SDK documentation. Path ==== Source: DXSDK\Samples\Multimedia\D3D\StencilBuffer\StencilMirror Executable: DXSDK\Samples\Multimedia\D3D\Bin User's Guide ============ The following keys are implemented. The dropdown menus can be used for the same controls. Starts and stops the scene Advances the scene by a small increment Shows help or available commands. Prompts user to select a new rendering device or display mode Toggles between fullscreen and windowed modes Exits the app. Programming Notes ================= 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 was reflected in the mirror. This sample makes use of common DirectX code (consisting of helper functions, etc.) that is shared with other samples on the DirectX SDK. All common headers and source code can be found in the following directory: DXSDK\Samples\Multimedia\Common