座標系メモ

-------ワールド座標系・変換-------
3Dの世界の絶対座標を司る。
物体を平行移動やグルグルさせるときに使うピョン。

-------ローカル座標系-------
物体独自に持つ座標系。
モデリング時に使用。
物体の頂点座標はこの座標系。
例として(10,10,10)のローカル座標系の頂点を含む物体を ワールド座標系の(0,5,0)に置いたとすると、 頂点のワールド座標は(10,15,10)となる。

-------カメラ座標系-------
カメラから見た座標系。
カメラが左に動けば、世界は右に移動する。
「世界の中心はオレ様だ!」という座標

-------スクリ−ン座標系-------
最終的にディスプレイに表示するときの座標系。
透視変換が必要。
2次元。

-------同次座標-------
三次元の座標に一次元増やした座標。
(x, y, z, w)のように表記される。
何で一次元増やすのかと言うと、この方が行列の計算に都合が良いため。
同次座標を元の三次元座標に戻すには、x,y,zをwで割ってやる必要がある。
例としては、(1,2,3)と(2,4,6,2)のような対応。

-------透視変換-------
近くの物体は大きく、遠くの物体は小さくする変換。
気になるあの子の服が透けて見えるわけじゃないです。
要するに遠近法をコンピュータにやらせるためにはどうしたらいいか?  ってことです。
具体的には、


x'=d×x÷z 
y'=d×y÷z 
(dは視点からスクリーンまでの距離)

簡単ですね。
これで遠い物体ほど、Z値に反比例して高さと幅が半分になります。
これをコンピュータが扱い易いように、行列に直します。

|d 0 0 0|
|0 d 0 0|
|0 0 0 1|
|0 0 0 0|

うぉう、シンプル!
(スクリーンは2次元なので、とりあえずZ'は0としておく)
何故こうなるのかは、実際に|x,y,z,w|に、この行列をかけてみると、
(d×x, d×y, 0, z)
となり、これを同次座標から三次元に戻してやると
(d×x÷z, d×y÷z, 0)
これはさっきの式と全く同じですね。

ちなみに、この補正をしないことを平行投影って言うみたいです。