Microsoft DirectX 8.0 (C++) |
デバイスのユーザー定義クリップ面の係数を設定する。
HRESULT SetClipPlane( DWORD Index, CONST float* pPlane );
成功した場合は、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 値の対応するビットを設定する。
ヘッダー : d3d8.h で宣言。
インポート ライブラリ : D3d8.lib を使用。