Platform SDK: DirectX |
3D シーンのオブジェクトの知覚速度は、オブジェクトを不鮮明にすること、およびオブジェクトの後ろにオブジェクト画像の不鮮明な跡を残すことによって高めることができる。Direct3D アプリケーションは、フレームごとにオブジェクトを複数回レンダリングすることでこれを実現できる。
通常、Direct3D アプリケーションはシーンをオフスクリーン バッファにレンダリングすることを思い出してほしい。バッファの内容は、アプリケーションで DirectDrawSurface7.Flip メソッドを呼び出したときにスクリーンに表示される。Direct3D プログラムは、スクリーンにフレームを表示する前にオブジェクトをシーンに複数回レンダリングできる。
アプリケーションで DrawPrimitive メソッドへの呼び出しを複数回行い、同じ 3D オブジェクトを繰り返し渡す。それぞれの呼び出しの前に、オブジェクトの位置座標を少し更新し、ターゲット レンダリング サーフェス上に一連の不鮮明なオブジェクト画像を生成する。オブジェクトが 1 つまたは複数のテクスチャを持っている場合、テクスチャすべてをほとんど透明にしてオブジェクトの最初の画像をレンダリングすると、モーション ブラー エフェクトを高めることができる。オブジェクトのレンダリングのたびに、オブジェクトのテクスチャの透明度が減少する。最終位置座標でオブジェクトをレンダリングするときは、透明度なしでオブジェクトをレンダリングすること。例外は、テクスチャの透明度を必要とするほかのエフェクトにモーション ブラーを追加する場合である。どの場合でも、フレームのオブジェクトの最初の画像が最も透明でなければならない。最後の画像の透明度が最も低くなければならない。
ターゲット レンダリング サーフェスに一連のオブジェクト画像をレンダリングし、残りのシーンもレンダリングしたら、IDirectDrawSurface7::Flip メソッドを呼び出してスクリーンにフレームを表示する。
ターゲット レンダリング サーフェスに一連のオブジェクト画像をレンダリングし、残りのシーンもレンダリングしたら、DirectDrawSurface7.Flip メソッドを呼び出してスクリーンにフレームを表示する。
ユーザーがシーンを高速で移動するエフェクトをシミュレーションする場合は、スクリーン全体にモーション ブラーを追加できる。この場合、アプリケーションはフレームごとにシーン全体を複数回レンダリングすることになる。シーンをレンダリングするたびに、視点を少し移動しなければならない。シーンが非常に複雑な場合、フレームごとのシーンのレンダリング回数が増えるので、高速に移動するシーンほどパフォーマンスが低下するのがユーザーに見える。