我现在正在学习 OpenGL(过剩)。通过使用 GL_Lines,我绘制了立方体,但它看起来像正方形,所以我尝试使用 gluLookAt。我一直在搜索和试验,但我不明白它是如何工作的!请帮忙。
最佳答案
如 documentation 中所述
C 规范
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
指定向上 vector 的方向。
描述
gluLookAt
创建一个从视点派生的观察矩阵,一个指示场景中心的引用点,以及一个 UP vector 。
矩阵将引用点映射到负z轴,将视点映射到原点。当使用典型的投影矩阵时,场景的中心因此映射到视口(viewport)的中心。类似地,投影到观察平面上的 UP vector 所描述的方向被映射到正 y 轴,因此它在视口(viewport)中指向上方。 UP vector 不能平行于从视点到引用点的视线。
借用下图(source)
eye
为 P
,center
为 fc
,up
code> 将 up
。 “近平面”和“远平面”定义了 viewing frustum 的范围。
关于c++ - 无法理解 gluLookAt 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35751873/