メインメニューを開く

差分

クリップスペース座標

1,445 バイト追加, 2020年3月11日 (水) 01:50
ページの作成:「'''クリップスペース座標'''(英語:clip space coordinates)とは、表示範囲(クリッピング)を表す座標系のことである。長…」
'''クリップスペース座標'''([[英語]]:clip space coordinates)とは、表示範囲([[クリッピング]])を表す座標系のことである。長い名称なので「クリップ空間」や「クリップ座標」とも呼ばれる。

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

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

クリップ座標のポイントは4つのコンポーネントで表される。
:<math>\begin{pmatrix}x_c\\y_c\\z_c\\w_c\end{pmatrix},</math>

等式
:<math>\begin{pmatrix}x_n\\y_n\\z_n\end{pmatrix} = \begin{pmatrix}x_c / w_c\\y_c / w_c\\z_c / w_c\end{pmatrix}.</math>

[[ビュー座標]]を[[正規化]]したものであり、一般的には「−1〜+1」もしくは「0〜+1」の範囲に正規化された数値で表される。この範囲が[[グラフィックスAPI]]ごとに異なる。[[シェーダー]]を移植する際にこの違いに気がつかないとハマる。
{| class="wikitable"
|+
! グラフィックス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軸もマイナスまである。
|}

[[category: 3DCG]]