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