Z バイアスの使い方

Z バイアスの使い方

3D 空間で同一平面上にあるポリゴンは、それぞれのポリゴンに Z バイアスを追加することで、あたかも同一平面上にないように表示することができる。この技術は、シーン内の影を正しく表示するために使用されることが多い。たとえば、壁上の影の深度値が壁の深度値と同じになる可能性がある。最初に壁をレンダリングし、次に影をレンダリングすると、影が見えないか、または深度による不自然な効果が見える。同一平面上のオブジェクトのレンダリング順を逆にすると、これとは逆の効果が得られるが、深度による不自然な効果が残ったままであることが多い。

C++ アプリケーションでは、同一平面上のポリゴン セットをレンダリングする際にシステムが使用する z 値にバイアスを追加することで、同一平面上のポリゴンを正しくレンダリングできる。z バイアスをポリゴン セットに追加するには、レンダリングの直前に IDirect3DDevice9::SetRenderState メソッドを呼び出す。このとき、State パラメータを D3DRS_DEPTHBIAS に設定し、Value パラメータを 0 と 16 を含む 0 ~ 16 の値に設定する。z バイアス値が高いほど、同一平面上の他のポリゴンと共に表示するとき、レンダリングするポリゴンが見える可能性が高くなる。