モーション ブラー (Direct3D 9)
オブジェクトをぼかし、オブジェクトの画像のぼやけた軌跡をオブジェクトの背後に残すことで、3D シーン内のオブジェクトの認識速度を向上させることができます。 Direct3D アプリケーションでは、フレームごとにオブジェクトを複数回レンダリングすることでこれを実現します。
Direct3D アプリケーションでは、通常、画面外バッファーにシーンがレンダリングされることを思い出してください。 アプリケーションが IDirect3DDevice9::P resent メソッドを呼び出すと、バッファーの内容が画面に表示されます。 Direct3D アプリケーションは、画面にフレームを表示する前に、オブジェクトをシーンに複数回レンダリングできます。
プログラムによって、アプリケーションは DrawPrimitive メソッドを複数回呼び出し、同じ 3D オブジェクトを繰り返し渡します。 各呼び出しの前に、オブジェクトの位置が少し更新され、ターゲット レンダリング サーフェイスに一連のぼやけたオブジェクト イメージが生成されます。 オブジェクトに 1 つ以上のテクスチャがある場合、アプリケーションは、オブジェクトの最初のイメージを、そのすべてのテクスチャをほぼ透明にレンダリングすることで、モーション ブラー効果を強化できます。 オブジェクトがレンダリングされるたびに、オブジェクトのテクスチャの透過性が低下します。 アプリケーションがオブジェクトを最終的な位置にレンダリングするときは、オブジェクトのテクスチャを透過性なしでレンダリングする必要があります。 テクスチャの透明度を必要とする別の効果にモーション ブラーを追加する場合は例外です。 いずれの場合も、フレーム内のオブジェクトの初期イメージが最も透明である必要があります。 最終的なイメージは最も透明なイメージである必要があります。
アプリケーションは、一連のオブジェクト イメージをターゲット レンダリング サーフェイスにレンダリングし、シーンの残りの部分をレンダリングした後、 IDirect3DDevice9::P resent メソッドを呼び出してフレームを画面上に表示する必要があります。
アプリケーションでユーザーがシーン内を高速に移動する効果をシミュレートしている場合は、シーン全体にモーション ブラーを追加できます。 この場合、アプリケーションはシーン全体をフレームごとに複数回レンダリングします。 シーンがレンダリングされるたびに、アプリケーションは視点を少し移動する必要があります。 シーンが非常に複雑な場合、フレームあたりのシーン レンダリングの数が増えたため、アクセラレーションが増加すると、ユーザーは目に見えるパフォーマンスの低下を見る可能性があります。
関連トピック