Microsoft DirectX 8.0 (C++)

IDirect3DDevice8::SetClipPlane

デバイスのユーザー定義クリップ面の係数を設定する。

HRESULT SetClipPlane(
  DWORD Index,
  CONST float* pPlane 
);

パラメータ

Index
[in] 平面方程式の係数を設定するクリップ面のインデックス。
pPlane
[in] 設定する一般平面方程式形式のクリップ面係数を表す値の、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 値の対応するビットを設定する。

動作環境

  ヘッダー : d3d8.h で宣言。
  インポート ライブラリ : D3d8.lib を使用。

参照

IDirect3DDevice8::GetClipPlane