Microsoft DirectX 8.0 (Visual Basic) |
射影行列の結果によって、射影空間でのクリッピング ボリュームが決まる。Microsoft® Direct3D® は、次のようにして、射影空間のクリッピング ボリュームを定義する。
この式では、Xc、Yc、Zc、および Wc は、射影トランスフォームの適用後の頂点座標を表す。クリッピングが有効な場合 (デフォルト設定)、これらの範囲外に x、y、または z 要素を持つ頂点がクリッピングされる。
頂点バッファを除き、アプリケーションでは、D3DRS_CLIPPING レンダリング ステートを使用してクリッピングを有効または無効にする。頂点バッファのクリッピング情報は処理中に生成される。詳細については、「頂点の処理」を参照すること。
Direct3D は頂点バッファのプリミティブのトランスフォームされた頂点をクリッピングしない。ただし、Direct3DDevice8.ProcessVertices によるものは除く。独自のトランスフォームを実行する際に、Direct3D でクリッピングを行う必要がある場合は、頂点バッファを使用するべきではない。この場合、アプリケーションがデータをトラバースしてトランスフォームし、Direct3D が再度データをトラバースしてクリッピングした後、ドライバがデータをレンダリングするので、効率的ではない。したがって、アプリケーションがデータをトランスフォームする場合は、データのクリッピングも行うべきである。