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 メソッドを使用する。

アプリケーションで深度バッファを使用するには、深度バッファを有効にする必要がある。詳細については、「深度バッファリングを有効にする」を参照すること。