コンピューターグラフィックスでは座標系に関してあらかじめ決めておかなければならない規約が1つある。その座標系が
左手系か
右手系かという規約である。本節ではそれぞれの違いについていくつか簡単に解説しておこう。
A) 左手系
座標系 :
左手系における座標系は図1のように、左手の親指をx軸のプラス方向、人差し指をy軸のプラス方向、中指をz軸のプラス方向に対応させたものである。
回転 :
3D空間における回転は、ある軸を回転軸としてその周りをオブジェクトが回転する。左手系の回転は図2のように左手の親指を回転軸とみなした場合、残りの指の曲がっている方向が回転のプラス方向として扱われる。図2はy軸を回転軸とした場合(注1)の回転の様子を示している。図3はy軸上方においてXZ平面を見下ろす位置から左手系の回転を見たときの様子である。x軸プラス側のある位置を起点とするy軸周りの回転であり、2つの水色の回転ベクトルはx軸上の起点から$+30$°の回転、$-60$°の回転を表している。$+30$°の回転は時計周りに$30$°、$-60$°の回転は反時計周りに$60$°となる。
(注1) 回転軸は通常、方向を表す単位ベクトルを使って表すが、y軸であれば$(0, 1, 0)$である。
使用例 :
UnityやUnreal Engineは左手系の規約に従っている。
B) 右手系
座標系 :
右手系における座標系は図4のように、右手の親指をx軸のプラス方向、人差し指をy軸のプラス方向、中指をz軸のプラス方向に対応させたものである。
回転 :
右手系の回転も図5のように右手の親指を回転軸とみなした場合、残りの指の曲がっている方向が回転のプラス方向として扱われる。図5はy軸を回転軸とした場合の回転の様子を示している。図6はy軸上方においてXZ平面を見下ろす位置から右手系の回転を見たときの様子である (右手系ではz軸のプラス方向、マイナス方向が左手系のものとは逆であることに注意)。この図においても x軸プラス側のある位置を起点とするy軸周りの回転であり、2つの水色の回転ベクトルはx軸上の起点から$+30$°の回転、$-60$°の回転を表している。$+30$°の回転は反時計周りに$30$°、$-60$°の回転は時計周りに$60$°となる。
使用例 :
BlenderやMayaは右手系の規約に従っている。
ゲームエンジンやDCCツール、あるいは3DプログラミングAPIなどを解説するWebサイトや書籍を読むにあたっては、その解説が左手系に従っているのか、右手系に従っているのかに注意する必要がある。
この講義においてはUnityを使用しているため、全章を通じて左手系に従っている。