Scroll to navigation

GLULOOKAT(3G) 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 ベクトルは、視点と参照点を結ぶ視線と平行になってはならない。
行列
 
F=centerXeyeXcenterYeyeYcenterZeyeZ.Pとし、
 
 
UP をベクトル (upX,upY,upZ) とする。
この場合、正規化は次のようになされる: f=F||F||
UP=UP||UP||
 
最後に、 s=f×UP , u=s×f とする。
 
すると M は次のように組み立てられる: M=s[0]s[1]s[2]0u[0]u[1]u[2]0-f[0]-f[1]-f[2]00001
また、 gluLookAt は glMultMatrixf(M); glTranslated (-eyex, -eyey, -eyez);
と等価である。

関連項目

glFrustum, gluPerspective