Microsoft DirectX 8.0 (Visual Basic) |
深度バッファはデバイスのプロパティである。Microsoft® Direct3D® によって管理される深度バッファを作成するには、D3DPRESENT_PARAMETERS 構造体の適切なメンバを設定する。次のコードは、その例を示している。
Dim d3dpp As D3DPRESENT_PARAMETERS d3dpp.Windowed = 1 d3dpp.SwapEffect = D3DSWAPEFFECT_COPY_VSYNC d3dpp.EnableAutoDepthStencil = 1 d3dpp.AutoDepthStencilFormat = D3DFMT_D16
EnableAutoDepthStencil メンバをゼロ以外の値 (TRUE) に設定して、アプリケーションの深度バッファを管理するよう Direct3D に指示する。AutoDepthStencilFormat は有効な深度バッファ フォーマットに設定すること。D3DFMT_D16 フラグは、16 ビットの深度バッファが使用できる場合は、それを指定する。
次の Direct3D8.CreateDevice メソッドの呼び出しは、深度バッファを作成するデバイスを作成する。
Set d3dDevice = g_D3D.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, _ D3DCREATE_SOFTWARE_VERTEXPROCESSING, d3dpp) If d3dDevice Is Nothing Then Exit Function
深度バッファは、デバイスのレンダリング ターゲットとして自動的に設定される。デバイスがリセットされると、深度バッファは自動的に破棄され、新しいサイズで再作成される。
新しい深度バッファ サーフェスを作成するには、Direct3DDevice8.CreateDepthStencilSurface メソッドを使用する。
デバイスの新しい深度バッファ サーフェスを設定するには、Direct3DDevice8.SetRenderTarget メソッドを使用する。
アプリケーションで深度バッファを使用するには、深度バッファを有効にする必要がある。詳細については、「深度バッファリングを有効にする」を参照すること。