Microsoft DirectX 8.0 (Visual Basic)

ビューポートのクリア

ビューポートをクリアすると、レンダリング ターゲット サーフェス上のビューポート矩形の内容と、深度バッファ サーフェスおよびステンシル バッファ サーフェス (指定されている場合) の矩形の内容がリセットされる。通常は、新しいフレームをレンダリングする前にビューポートをクリアして、ゴミを表示せずに、グラフィックスなどのデータが新しいレンダリング オブジェクトを受け入れる準備を整える。

Microsoft® Visual Basic® の Direct3DDevice8 クラスには、ビューポートをクリアする Direct3DDevice8.Clear メソッドがある。このメソッドは、クリアするサーフェス上の領域を定義する 1 つまたは複数の矩形を受け取る。レンダリングするシーンにビューポート矩形全体の移動が含まれている場合 (たとえば、対面型の遠近法を使用するゲーム)、各フレームのビューポート全体をクリアすることができる。この場合、Count パラメータを 1 に設定し、ClearD3DRect パラメータを D3DRECT 変数の単一要素配列に設定する。ここでは、レンダリング ターゲット サーフェスの領域全体に及ぶ矩形を最初の要素でのみ記述する。

Clear メソッドはさまざまな使用方法があり、深度バッファ内のステンシル ビットをクリアすることもできる。Flags パラメータは、レンダリング ターゲットおよび関係する深度バッファまたはステンシル バッファのクリア方法を指定する 3 つのフラグを受け取る。このパラメータに D3DCLEAR_TARGET フラグを指定すると、このメソッドは Color パラメータで指定した任意の RGBA 色 (マテリアル カラーではない) を使用してビューポートをクリアする。D3DCLEAR_ZBUFFER フラグを指定すると、このメソッドは z パラメータで指定した任意の深度に従って深度バッファをクリアする。0.0 は最も近い距離を表し、1.0 は最も遠い距離を表す。D3DCLEAR_STENCIL フラグを指定すると、このメソッドはステンシル ビットを Stencil パラメータで指定した値にリセットする。指定できる値は 0 〜 2n-1 までの整数である。ここで、n はステンシル バッファのビット深度を示す。

場合によっては、レンダリング ターゲット サーフェスと深度バッファ サーフェスの一部にのみレンダリングすることがある。クリア メソッドは、1 回の呼び出しでサーフェスの複数の領域をクリアすることもできる。これを行うには、Count パラメータにクリアする矩形の数を指定し、ClearD3DRect パラメータに矩形の配列を指定する。