Microsoft DirectX 8.0 (Visual Basic) |
object.SetClipPlane( _ Index As Long, _ Plane As D3DPLANE)
失敗した場合はエラーが発生し、Err.Number に D3DERR_INVALIDCALL が設定される。このエラーは、Index の値が、そのデバイスでサポートされる最大クリップ面インデックスを超えていることを示す。
エラー トラッピングの詳細については、Microsoft® Visual Basic® の「エラー処理」を参照すること。
このメソッドで設定する係数は、一般平面方程式の形式になっている。D3DPLANE 型の Plane の値 a、b、c、および d は一般平面方程式が ax + by + cz + d = 0 になるように適用される。ax + by + cz + dw >= 0 である場合、同次座標 (x, y, z, w) のポイントは平面が切り取る半分の空間に表示される。クリップ面上または背後に存在するポイントはシーンからクリッピングされる。
固定機能パイプラインが使用される場合、平面方程式はワールド空間にあると仮定される。プログラム可能なパイプラインが使用される場合、平面方程式はクリップ空間 (出力頂点と同じ空間) にあると仮定される。
このメソッドは、設定されているクリップ面の式を有効にするものではない。クリップ面を有効にするには、CONST_D3DRENDERSTATETYPE 列挙の D3DRS_CLIPPLANEENABLE レンダリング ステート定数を使用する。