フォグ (Direct3D 9)
3D シーンにフォグを追加すると、リアリティが増し、雰囲気やムードがアップするため、遠方の形状が視野に入るときに時おり生じる不自然な表示を目立たなくさせることができます。Direct3D は、ピクセル フォグと頂点フォグという 2 つのフォグ モデルをサポートします。これらのフォグは、それぞれ独自の機能とプログラミング インターフェイスを持ちます。
基本的に、フォグはシーンのオブジェクトの色を、シーンでのオブジェクトの深度や視点からの距離に基づいて選択されたフォグ カラーとブレンドすることで実装されます。オブジェクトが遠くなるほど、オブジェクトの元の色は選択されたフォグの色とブレンドされ、シーン内に浮かぶ小さなパーティクルによって次第に不明瞭になっていくという錯覚が生まれます。次の図は、フォグなしでレンダリングされたシーン、およびフォグを有効にしてレンダリングされた同じようなシーンを示したものです。
この図では、左側のシーンには現実の世界では見えないようなはっきりとした水平線があります。これより上の景色は表示されません。右側のシーンは、背景色とまったく同じフォグの色を使用して水平線を不明瞭にしていて、ポリゴンは次第に遠ざかって消えていくように見えます。個別のフォグ エフェクトを独創的なシーンのデザインと組み合わせることで、ムードを高めたり、シーン内のオブジェクトの色をぼかすことができます。
Direct3D では、シーンにピクセル フォグと頂点フォグという 2 とおりの方法でフォグを追加します。これらはフォグ エフェクトの適用方法にちなんだ名称です。詳細については、「ピクセル フォグ (Direct3D 9)」および「頂点フォグ (Direct3D 9)」を参照してください。簡単に言うと、テーブル フォグとも呼ばれるピクセル フォグはデバイス ドライバーに実装され、頂点フォグは Direct3D ライティング エンジンに実装されます。アプリケーションは、頂点シェーダーでフォグを実装でき、必要に応じてピクセル フォグを同時に実装できます。
注 ピクセル フォグと頂点フォグのいずれを使用するかに関係なく、フォグ エフェクトが適切に適用されるには、アプリケーションが規定に合った射影行列を提供する必要があります。この制限は、Direct3D トランスフォームおよびライティング エンジンを使用しないアプリケーションにも適用されます。適切な行列を提供する方法についての詳細は、「射影トランスフォーム (Direct3D 9)」を参照してください。
次のトピックでは、フォグの概要、および Direct3D アプリケーションでの各種フォグ機能の使用に関する情報を示します。
- フォグ数式 (Direct3D 9)
- フォグ パラメーター (Direct3D 9)
- フォグ ブレンディング (Direct3D 9)
- フォグ カラー (Direct3D 9)
- 頂点フォグ (Direct3D 9)
- ピクセル フォグ (Direct3D 9)
フォグ ブレンディングはレンダリング ステートで制御されます。プログラム可能なピクセル パイプラインの一部ではありません。