我正在尝试在3D空间制作免费的旅行相机。 glulookat函数如下所示:
gluLookAt(g_eye[0],g_eye[1],g_eye[2],
g_look[0],g_look[1],g_look[2],
0,1.0,0
);
前三个坐标只是相机位置。最后三个坐标是关于相机的旋转。
似乎第二个三个坐标是关于相机的位置。
但我真的不明白为什么我们需要第二个三坐标。这将如何影响我们的观点?
例如: 如果相机从原点开始,则相机向右旋转30度,然后在-Z方向上平移10。然后我知道相机现在在哪里。但是我应该把它放到后三个坐标中呢?
原点相机
在某种程度上向右转
继续前进
答案 0 :(得分:4)
但我真的不明白为什么我们需要第二个三坐标。这将如何影响我们的观点?
你的头位于前3个参数的坐标处。
您在阅读时看到的对象是屏幕,第二个3参数
对于你到目前为止读到的文本向上向量,最后一个参数接近于(0,1,0)现在读到这个:
答案 1 :(得分:3)
eye 的位置(前三个坐标)和视点(后三个)定义视线。最后三个坐标 up 向量用于确定围绕视线的旋转角度。 OpenGL中的旋转需要轴旋转,这是前两组坐标的原因。有关在OpenGL中查看转换的详细信息,请查看here。