IDirect3DDevice9::SetClipPlane
デバイスのユーザー定義クリップ面の係数を設定します。
HRESULT
SetClipPlane(
DWORD Index,
CONST float * pPlane
);
パラメータ
- Index
平面方程式の係数を設定するクリップ面のインデックス - pPlane
設定するクリップ面係数を表す 4 要素の値の配列のアドレスへのポインター。一般平面方程式の形で指定します。「解説」を参照してください。
戻り値
メソッドが成功した場合は、D3D_OK を返します。失敗すると、D3DERR_INVALIDCALL を返します。このエラーは、Index の値がデバイスでサポートされる最大クリップ面インデックスを超えていること、または pPlane の配列が 4 つの浮動小数点値を格納するには十分な大きさではないことを示しています。
解説
このメソッドで取得できる係数は、一般平面方程式の形をとります。pPlane で配列内の値が、配列内に表示される順に A、B、C、および D とラベル付けされている場合、これらの値は一般平面方程式が Ax + By + Cz + Dw = 0 になるように適用されます。Ax + By + Cz + Dw > = 0 である場合、同次座標 (x, y, z, w) のポイントは平面で切り取られた半分の空間に表示されます。クリップ面の背後に存在するポイントはシーンからクリッピングされます。
固定機能パイプラインを使用する場合、平面方程式はワールド空間内にあるものと想定されます。プログラム可能なパイプラインを使用する場合、平面方程式はクリッピング空間 (出力される頂点と同じ空間) にあるものと想定されます。
このメソッドでは、設定されるクリップ面の方程式が有効になりません。クリップ面を有効にするには、D3DRS_CLIPPLANEENABLE レンダリング ステートに適用される DWORD 値の対応するビットをセットします。
要件
ヘッダー: D3D9.h 宣言
ライブラリ: D3D9.lib 内容