「クリップスペース座標」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
(ページの作成:「'''クリップスペース座標'''(英語:clip space coordinates)とは、表示範囲(クリッピング)を表す座標系のことである。長…」)
 
11行目: 11行目:
 
:<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>
 
:<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]]ごとに異なる。[[シェーダー]]を移植する際にこの違いに気がつかないとハマる。
+
[[ビュー座標]]を[[正規化]]したものであり、一般的には「−1〜+1」もしくは「0〜+1」の範囲に正規化された数値で表される。この範囲は[[グラフィックスAPI]]ごとに異なる。[[シェーダー]]を移植する際にこの違いに気がつかないとハマる。
 
{| class="wikitable"
 
{| class="wikitable"
 
|+
 
|+
20行目: 20行目:
 
! 備考
 
! 備考
 
|-
 
|-
| Direct3D, Metal
+
| [[Direct3D]], [[Metal]]
 
| (-1,1)
 
| (-1,1)
 
| (-1,1)
 
| (-1,1)
 
| (0,1)
 
| (0,1)
 
|-
 
|-
| Vulkan
+
| [[Vulkan]]
 
| (-1,1)
 
| (-1,1)
 
| (1,-1)
 
| (1,-1)
31行目: 31行目:
 
| Direct3DやMetalと同じに見えるがY軸が反転している。
 
| Direct3DやMetalと同じに見えるがY軸が反転している。
 
|-
 
|-
| OpenGL, OpenGL ES
+
| [[OpenGL]], [[OpenGL ES]]
 
| (-1,1)
 
| (-1,1)
 
| (-1,1)
 
| (-1,1)

2020年3月11日 (水) 01:50時点における版

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

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

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

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

等式

ビュー座標正規化したものであり、一般的には「−1〜+1」もしくは「0〜+1」の範囲に正規化された数値で表される。この範囲はグラフィックスAPIごとに異なる。シェーダーを移植する際にこの違いに気がつかないとハマる。

グラフィックス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軸もマイナスまである。