Microsoft DirectX 8.0 (Visual Basic) |
深度バッファリングとは、隠線および隠面を削除する方法である。デフォルトでは、Microsoft® Direct3D® で深度バッファリングは使用されない。
深度バッファの概要については、「深度バッファとは」を参照すること。
Microsoft Visual Basic® アプリケーションでは、CONST_D3DZBUFFERTYPE 列挙のメンバのいずれかを使用して新しいステート値を指定することで、D3DRS_ZENABLE レンダリング ステートで深度バッファリング ステートを更新する。
Direct3D による深度バッファへの書き込みを防止する必要がある場合は、D3DRS_ZWRITEENABLE レンダリング ステートを使用し、Direct3DDevice8.SetRenderState の呼び出しの第 2 パラメータとして D3DZB_FALSE を指定する。
次の Visual Basic コードは、z バッファリングが有効になるように深度バッファ ステートを設定する方法を示している。
' このコード例では、d3dDevice が Direct3DDevice8 オブジェクトへの ' 有効な参照を格納していると仮定している。 ' z バッファリングを有効にする。 Call d3dDevice.SetRenderState(D3DRS_ZENABLE, D3DZB_TRUE)
アプリケーションでは、また、D3DRS_ZFUNC レンダリング ステートを使用して、深度バッファリングの実行時に Direct3D で使用する比較関数を制御できる。
z バイアスとは、互いの深度値が同じであっても、一方のサーフェスを他方のサーフェスより手前に表示する方法である。このテクニックは、さまざまなエフェクトを期待できる。一般的な例として、壁に影を付ける場合を考える。影も壁も深度値は同じである。しかし、どうしても壁に影を付けようとする場合がある。このような場合、影に z バイアスを適用することで、壁の上に影を適切に表示できる (「D3DRS_ZBIAS」を参照すること)。