GLULOOKAT(3G)

名前
gluLookAt - ビューイング変換を定義する

書式
void gluLookAt( GLdouble eyeX,
	GLdouble eyeY,
	GLdouble eyeZ,
	GLdouble centerX,
	GLdouble centerY,
	GLdouble centerZ,
	GLdouble upX,
	GLdouble upY,
	GLdouble upZ )

引き数

eyeX, eyeY, eyeZ
    視点の位置を指定する。

centerX, centerY, centerZ
    参照点の位置を指定する。

upX, upY, upZ
    up ベクトルの方向を指定する。

説明
gluLookAt は視点、シーンの中心を示す参照点、 UP ベクトルからビューイング行列を作る。

この行列は参照点を z 軸上(座標が負の範囲)にマップし、 視点を原点にマップする。 したがって、普通の射影行列が使われているときは、シーンの 中心はビューポートの中心にマップされる。 同様に、ビューイング平面上に投影される UP ベクトルが示す方向は、 y 軸上(座標が正の範囲)にマップされる。 この際の方向は、ビューポート内で上を向くようにされる。 UP ベクトルは、視点と参照点を結ぶ視線と平行になってはならない。

行列

UP をベクトル $("upX", "upY", "upZ")$ とする。

この場合、正規化は次のようになされる:

最後に、$s ~=~ f ~times~ UP sup prime$, $u ~=~ s ~times~ f$ とする。

すると M は次のように組み立てられる:

また、gluLookAt は glMultMatrixf(M); glTranslated (-eyex, -eyey, -eyez);

と等価である。

関連項目
glFrustum, gluPerspective