Platform SDK: DirectX

デカーリング

Direct3D アプリケーションは、デカーリング技術を使用して、レンダリング ターゲット サーフェスに特定のプリミティブのどのピクセルを描画するかを制御する。プログラムでデカールをプリミティブの画像に適用して、同一平面上のポリゴンを正しくレンダリングできるようにする。

たとえば、タイヤの跡と黄色の線を道路に適用するとき、この跡は直接道路の上に表示しなければならない。しかし、この跡と道路の z 値は同一である。したがって、深度バッファでは、両者をはっきりと区別できない。背後のプリミティブのピクセルが前面のプリミティブ上にレンダリングされたり、その逆のレンダリングが行われる場合がある。この結果、画像はフレームごとに揺れる。このエフェクトを "Z ファイティング" または "フリマリング" と呼ぶ。

この問題を解決するには、ステンシルを使用して、デカールが表示される背面プリミティブの部分のマスクを外す。z バッファリングをオフにして、レンダリング ターゲット サーフェスのマスクで覆っている領域に前面プリミティブの画像をレンダリングする。

マルチ テクスチャ ブレンディングを使用してこの問題を解決することもできるが、この方法を使用すると、アプリケーションで生成できる他の特殊効果の数が制限される。ステンシル バッファを使用してデカールを適用すると、ほかのエフェクトに対するテクスチャ ブレンディング ステージの制限が解放される。