GLULOOKAT

Section: Misc. Reference Manual Pages (3G)
索引 xjman
 

名前

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

 

書式

void gluLookAt( GLdouble eyeX,

                  GLdouble eyeY,
                  GLdouble eyeZ,
                  GLdouble centerX,
                  GLdouble centerY,
                  GLdouble centerZ,
                  GLdouble upX,
                  GLdouble upY,
                  GLdouble upZ )

delim $$  

引き数

eyeX, eyeY, eyeZ
視点の位置を指定する。
centerX, centerY, centerZ
参照点の位置を指定する。
upX, upY, upZ
up ベクトルの方向を指定する。
 

説明

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

F ~=~ left ( down 20 { ~ matrix {
   ccol {"centerX" above "centerY" above "centerZ"}
   ccol { ~-~ above ~-~ above ~-~}
   ccol {"eyeX" above "eyeY" above "eyeZ"} } } ~~ right )

とし、

UP をベクトル $("upX", "upY", "upZ")$ とする。 この場合、正規化は次のようになされる: f ~=~ F over {|| F ||} UP sup prime ~=~ UP over {|| UP ||}

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

すると M は次のように組み立てられる: M ~=~ left ( matrix {
   ccol { ~s[0] above ~u[0] above -f[0] above 0 }
   ccol { ~s[1] above ~u[1] above -f[1] above 0 }
   ccol { ~s[2] above ~u[2] above -f[2] above 0 }
   ccol { 0 above 0 above 0  above 1 } } ~~right ) また、gluLookAt は glMultMatrixf(M); glTranslated (-eyex, -eyey, -eyez); と等価である。  

関連項目

glFrustum(3G), gluPerspective(3G)


 

Index

名前
書式
引き数
説明
関連項目

jman



Time: 07:01:13 GMT, January 12, 2009