「クリップスペース座標」の版間の差分
Administrator (トーク | 投稿記録) |
|||
(他の1人の利用者による、間の1版が非表示) | |||
6行目: | 6行目: | ||
クリップ座標のポイントは4つのコンポーネントで表される。 | クリップ座標のポイントは4つのコンポーネントで表される。 | ||
+ | |||
:<math>\begin{pmatrix}x_c\\y_c\\z_c\\w_c\end{pmatrix},</math> | :<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> | :<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> | ||
− | [[ビュー座標]] | + | [[ビュー座標]](x, y, z)を[[正規化]](その際の倍率をwに保存)したものである。 |
+ | |||
+ | == グラフィックスAPIごとの違い == | ||
+ | xとyの値はどの[[グラフィクスAPI]]でも「-1 〜 +1」の範囲で統一されているが、zの値に関しては「-1 〜 +1」や「0 〜 1」などと範囲が異なる。この違いは[[シェーダー]]を移植する際に意外とハマるポイントである。 | ||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ | ||
− | ! グラフィックスAPI | + | !グラフィックスAPI |
− | ! X軸 | + | !X軸 |
− | ! Y軸 | + | !Y軸 |
− | ! Z軸 | + | !Z軸 |
− | ! 備考 | + | !備考 |
|- | |- | ||
− | | [[Direct3D]] | + | |[[Direct3D]] |
− | | (-1,1) | + | [[Metal]] |
− | | (-1,1) | + | |(-1,+1) |
− | | (0,1) | + | |(-1,+1) |
+ | |(0,+1) | ||
+ | | | ||
|- | |- | ||
− | | [[Vulkan]] | + | |[[Vulkan]] |
− | | (-1,1) | + | |(-1,+1) |
− | | (1,-1) | + | |(+1,-1) |
− | | (0,1) | + | |(0,+1) |
− | | Direct3DやMetalと同じに見えるがY軸が反転している。 | + | |Direct3DやMetalと同じに見えるがY軸が反転している。 |
|- | |- | ||
− | | [[OpenGL]] | + | |[[OpenGL]] |
− | | (-1,1) | + | [[OpenGL ES]] |
− | | (-1,1) | + | |(-1,+1) |
− | | (-1,1) | + | |(-1,+1) |
− | | こいつだけZ軸もマイナスまである。 | + | |(-1,+1) |
+ | |こいつだけZ軸もマイナスまである。 | ||
|} | |} | ||
[[category: 3DCG]] | [[category: 3DCG]] |