パフォーマンスに関する考慮事項 (Direct3D 10)
効果プールの使用
パイプラインのレンダリングでは、多くのシェーダーを使用してさまざまなオブジェクトの種類と特殊効果をレンダリングするのが一般的です。 シェーダーは、ワールド マトリックスやライトの位置など、すべてのシェーダーに共通する状態と、オブジェクトの拡散色や反射ハイライト計算など、各シェーダーに固有のその他の状態の組み合わせです。 エフェクト プールは、多くのシェーダーで使用される状態と、シェーダー、レンダリング状態オブジェクト、定数バッファーなどの一般的なデバイス オブジェクトを格納するためのメモリ内の場所です。 パフォーマンス向上の結果、その状態を必要とするすべてのシェーダーに対して共通の状態が 1 回更新されます。
効果プールは、効果の状態の共有メモリの場所です。 プールは、効果と同様に作成されます。メモリ (またはファイルまたはリソース) から作成できます。 これにより、2 種類の効果が生じます。他の効果の状態に依存しないグローバル効果と、別の効果の状態に依存する子効果です。
効果の作成時に、効果がグローバル効果 (既定の場合) または子効果 ( D3D10_EFFECT_COMPILE_CHILD_EFFECT フラグを指定) のいずれであるかを指定します。 グローバル効果は、効果プールとして機能できます。子効果を効果プールにすることはできません。
関連トピック