次の方法で共有


効果 (Direct3D 10)

DirectX 効果はパイプライン状態のコレクションであり、HLSL およびエフェクト フレームワークに固有の構文 記述された式によって設定されます。 エフェクトをコンパイルした後、効果フレームワーク API を使用してレンダリングします。 エフェクト機能は、ジオメトリを変換する頂点シェーダーや、単色を出力するピクセル シェーダー、複数のパスを必要とするレンダリング手法、グラフィックス パイプラインのすべてのステージを使用するレンダリング手法、シェーダーの状態、およびプログラミング可能なシェーダーに関連付けられていないパイプライン状態の操作まで、さまざまなものがあります。

最初の手順では、効果で制御する状態を整理します。 これには、シェーダーの状態 (頂点、ジオメトリ、ピクセル シェーダー)、シェーダーで使用されるテクスチャとサンプラーの状態、およびその他のプログラム不可能なパイプライン状態が含まれます。 効果はテキスト文字列としてメモリ内に作成できますが、通常は、効果の状態を効果ファイル (.fx 拡張子で終わるテキスト ファイル) に格納するのに便利な大きさになります。 効果を使用するには、(HLSL 構文と効果フレームワーク構文を確認するために) 効果をコンパイルし、API 呼び出しを使用して効果の状態を初期化し、レンダリング API を呼び出すようにレンダー ループを変更する必要があります。

効果は、特定の効果に必要なすべてのレンダリング状態を、手法と呼ばれる 1 つのレンダリング関数にカプセル化します。 パスは、レンダリング状態を含む手法のサブセットです。 マルチ パス レンダリング効果を実装するには、手法内で 1 つ以上のパスを実装します。 たとえば、1 セットの深度/ステンシル バッファーでジオメトリをレンダリングし、その上にスプライトをいくつか描画するとします。 最初のパスでジオメトリ レンダリングを実装し、2 番目のパスにスプライト描画を実装できます。 効果をレンダリングするには、レンダー ループで両方のパスをレンダリングするだけです。 効果には、任意の数の手法を実装できます。 もちろん、手法の数が多いほど、効果のコンパイル時間が長くなります。 この機能を利用する 1 つの方法は、さまざまなハードウェアで実行するように設計された手法を使用して効果を作成することです。 これにより、アプリケーションは検出されたハードウェア機能に基づいてパフォーマンスを適切にダウングレードできます。

Direct3D 10 プログラミング ガイド