Microsoft DirectX 8.0 (Visual Basic) |
Microsoft® Direct3D® アプリケーションは、デカーリング技術を使用して、特定のプリミティブ画像のどのピクセルをレンダリング ターゲット サーフェスに描画するかを制御する。アプリケーションは、デカールをプリミティブの画像に適用して、同一平面上のポリゴンが正しくレンダリングされるようにする。
たとえば、タイヤの跡と黄色の線を道路に適用するとき、この跡は直接道路の上に表示しなければならない。しかし、この跡と道路の z 値は同一である。したがって、深度バッファでは、両者をはっきりと区別できない。背後のプリミティブのピクセルが前面のプリミティブ上にレンダリングされたり、その逆のレンダリングが行われる場合がある。この結果、画像はフレームごとに揺れる。このエフェクトをZ ファイティングまたはフリマリングと呼ぶ。
この問題を解決するには、ステンシルを使用して、デカールが表示される背面プリミティブの部分をマスクする。z バッファリングをオフにして、レンダリング ターゲット サーフェスのマスクで覆っている領域に前面プリミティブの画像をレンダリングする。
マルチ テクスチャ ブレンディングを使用してこの問題を解決することもできるが、この方法を使用すると、アプリケーションで生成できるほかの特殊効果の数が制限される。ステンシル バッファを使用してデカールを適用すると、ほかのエフェクトに対するテクスチャ ブレンディング ステージの制限が解放される。