人睇世界為平視,神睇世界則高處俯視.OpenGL用UVN相機gluLookAt()用於指定相機視線. 神位於10米高,處垂直俯視地表即『視線』設(0.0f,0.0f,0.0f).將『頭頂指向』設(0.0f,0.0f,1.0f) .
void gluLookAt(0.0f, 10.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f,0.0f,1.0f); | |
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 | 神頭頂指向,設(0.0f,0.1f,0.0f) |
用『歐拉』Euler相機模型則方便直接繞X軸轉90度.
glRotatef(90.0f, 1.0f, 0.0f, 0.0f); | 傾斜/俯仰繞X軸旋轉的角度 |
glRotatef(0.0f, 0.0f, 0.0f, 1.0f); | 橫搖/側滾繞Z軸旋轉的角度 |
glRotatef(0.0f, 0.0f, 1.0f, 0.0f); | 偏航/航向繞Y軸旋轉的角度 |
glTranslatef(-x,-y,-z); | 移動模型坐標 |