ShaderTips

シェーダーTips

主にUnityシェーダーについての記事を書いています。

【Shader】座標系まとめ

座標系についてまとめておきます 。

Homogeneous Coordinates(同次座標系)

( x,y,z,w)4次元として扱うこと。 非同次座標系(直交座標系)への変換は(x,y,z,w) = ( x/w ,y/w ,z/w ,1)というように行う。 この変換を正規化という。

ObjectSpace(オブジェクト座標系、ローカル座標系、モデル座標系)

オブジェクトが中心となる座標系(モデルソフト上での座標) WorldSpace(ワールド座標系、グローバル座標系) シーンを中心として、シーンの複数のオブジェクトが空間的にどのようにあるかを示す座標系。 移動・回転・スケールを行うワールド行列によって、ObjectSpaceから変換される。

ViewSpace(視点座標系、カメラ座標系)

描画するカメラを中心とし、その視点を原点とする座標系。 カメラの逆行列のビュー行列によってWorldSpaceから変換される。

ClipSpace(クリッピング座標系、クリップ座標系)

アスペクト比、near clip、far clipを定義したプロジェクション行列(射影行列)をViewSpaceに掛けることで得られる座標系 カメラに収まらない頂点のクリッピングを行う

Normalized Device Coordinates(正規デバイス座標系)

ClipSpaceで得られた同次座標系を非同次座標系に変換することによって-1<=X<=1、-1<=Y<=1、0<=Z<=1で定義される座標系。 手前のオブジェクトは大きく、奥のものは小さく描画されるようになる。

ScreenSpace(スクリーン座標系、ウィンドウ座標系)

Normalized Device Coordinatesで得られた正規化された値をスクリーンの解像度に合うように変換した座標系。

参考

3DCGの座標系の紹介 | なたで日記