Platform SDK: DirectX |
3D 空間で同一平面上にあるポリゴンは、それぞれのポリゴンに Z バイアスを追加することで、あたかも同一平面上にないように表示することができる。この技術は、シーン内の影を正しく表示するために使用されることが多い。たとえば、壁上の影の深度値が壁の深度値と同じになる可能性がある。最初に壁をレンダリングし、次に影をレンダリングすると、影が見えないか、または深度による不自然な効果が見える。同一平面上のオブジェクトのレンダリング順を逆にすると、これとは逆のエフェクトが得られるが、深度による不自然な効果が残ったままであることが多い。
C++ アプリケーションでは、同一平面上のポリゴン セットをレンダリングする際にシステムが使用する z 値にバイアスを追加することで、同一平面上のポリゴンを正しくレンダリングできる。z バイアスをポリゴン セットに追加するには、レンダリングの直前に IDirect3DDevice7::SetRenderState メソッドを呼び出す。このとき、dwRenderStateType パラメータを D3DRENDERSTATE_ZBIAS に設定し、dwRenderState パラメータを 0 と 16 を含む 0 〜 16 の値に設定する。z バイアス値が高いほど、同一平面上のほかのポリゴンと共に表示するとき、レンダリングするポリゴンが見える可能性が高くなる。
Visual Basic アプリケーションでは、同一平面上のポリゴン セットをレンダリングする際にシステムが使用する z 値にバイアスを追加することで、同一平面上のポリゴンを正しくレンダリングできる。z バイアスをポリゴン セットに追加するには、レンダリングの直前に Direct3DDevice7.SetRenderState メソッドを呼び出す。このとき、第 1 パラメータを D3DRENDERSTATE_ZBIAS に設定し、第 2 パラメータを 0 と 16 を含む 0 〜 16 の値に設定する。z バイアス値が高いほど、同一平面上のほかのポリゴンと共に表示するとき、レンダリングするポリゴンが見える可能性が高くなる。