クリップスペース座標

提供: MonoBook
ナビゲーションに移動 検索に移動

クリップスペース座標英語:clip space coordinates)とは、表示範囲(クリッピング)を表す座標系のことである。長い名称なので「クリップ空間」や「クリップ座標」とも呼ばれる。

主に3D空間で視界よりも外側にあるかどうかの判断に使われている。

OpenGLVulkanでは頂点シェーダーの実行結果はクリップ座標内にあると見なされる。

クリップ座標のポイントは4つのコンポーネントで表される。

等式

ビュー座標(x, y, z)を正規化(その際の倍率をwに保存)したものである。

グラフィックスAPIごとの違い

xとyの値はどのグラフィクスAPIでも「-1 〜 +1」の範囲で統一されているが、zの値に関しては「-1 〜 +1」や「0 〜 1」などと範囲が異なる。この違いはシェーダーを移植する際に意外とハマるポイントである。

グラフィックスAPI X軸 Y軸 Z軸 備考
Direct3D

Metal

(-1,+1) (-1,+1) (0,+1)
Vulkan (-1,+1) (+1,-1) (0,+1) Direct3DやMetalと同じに見えるがY軸が反転している。
OpenGL

OpenGL ES

(-1,+1) (-1,+1) (-1,+1) こいつだけZ軸もマイナスまである。