霧 (Direct3D 9)
3D シーンに霧を追加すると、リアリズムを高めたり、雰囲気を提供したり、気分を設定したり、遠くのジオメトリが表示されたときに発生するアーティファクトがあいまいになる場合があります。 Direct3D では、ピクセル 霧と頂点霧の 2 つの霧モデルがサポートされています。それぞれに独自の機能とプログラミング インターフェイスがあります。
基本的に、霧はシーン内のオブジェクトの色を、シーン内のオブジェクトの深さまたは視点からの距離に基づいて選択した霧の色とブレンドすることによって実装されます。 オブジェクトが遠くに拡大するにつれて、元の色は選択した霧の色とますますブレンドされ、シーン内に浮かぶ小さな粒子によってオブジェクトがますます隠されているという錯覚が生じます。 次の図は、霧なしでレンダリングされたシーンと、霧を有効にしてレンダリングされた同様のシーンを示しています。
この図では、左側のシーンは明確な水平線を持ち、それ以降は現実の世界では見えるであろうにもかかわらず、景色は見えません。 右側のシーンは、背景色と同じ霧の色を使用して水平線を隠し、多角形が遠くにフェードインするように見えます。 個別の霧効果とクリエイティブなシーンデザインを組み合わせることで、気分を高め、シーン内のオブジェクトの色を和らげます。
Direct3D には、シーンに霧を追加する 2 つの方法があります。ピクセル 霧と頂点霧は、霧効果の適用方法に名前が付けられています。 詳細については、「 ピクセル 霧 (Direct3D 9)」 と 「頂点霧 (Direct3D 9)」を参照してください。 つまり、ピクセル 霧 (テーブル 霧とも呼ばれます) はデバイス ドライバーに実装され、頂点の霧は Direct3D 照明エンジンに実装されます。 アプリケーションでは、頂点シェーダーを使用して霧を実装し、必要に応じてピクセル 霧を同時に実装できます。
注意
ピクセルまたは頂点の霧を使用するかどうかにかかわらず、アプリケーションは、霧の効果が適切に適用されるように、準拠したプロジェクション マトリックスを提供する必要があります。 この制限は、Direct3D 変換エンジンと照明エンジンを使用しないアプリケーションにも適用されます。 適切なマトリックスを指定する方法の詳細については、「 プロジェクション変換 (Direct3D 9)」を参照してください。
次のトピックでは、Direct3D アプリケーションでのさまざまな霧機能の使用に関する霧と情報を紹介します。
- 霧の数式 (Direct3D 9)
- Fog パラメーター (Direct3D 9)
- 霧のブレンド (Direct3D 9)
- 霧の色 (Direct3D 9)
- 頂点の霧 (Direct3D 9)
- ピクセル 霧 (Direct3D 9)
霧のブレンドはレンダリング状態によって制御されます。プログラム可能なピクセル パイプラインの一部ではありません。