Enabling Depth Buffering

After creating a depth buffer (as described in Creating a Depth Buffer), you enable depth buffering by setting the RenderStateManager.ZBufferEnable property of the Device.RenderState property to true. To enable w-buffering, set the device's render state RenderStateManager.UseWBuffer property to true. These steps are illustrated in the following C# code example.

          [C#]
          

using System;
using Microsoft.DirectX.Direct3D;

    // Declare a rendering device.
    Device device = null;

    // Initialize the device.
    .
    .
    .
    
    // Get the device's render state object.
    RenderStates rs = device.RenderState;
    
    // Enable depth buffering.
    rs.ZBufferEnable = true;
    
    // Render the scene.
    .
    .
    .
    
    // Disable depth buffering
    // (note the different syntax; both forms are acceptable)
    device.RenderState.ZBufferEnable = false;
    
    // Use w-buffering.
    device.RenderState.UseWBuffer = true;

Note: To use w-buffering, an application must set a compliant projection matrix, even if it does not use the Microsoft Direct3D transformation pipeline. For information about providing an appropriate projection matrix, see A W-Friendly Projection Matrix. The projection matrix discussed in What Is the Projection Transformation? is compliant.