我有一个天空盒和一些带有挥动效果的水。当摄像机移动时,天空盒和水会移动。这一切都很好,但是当我按空间时,我希望相机向上移动,但没有天空盒或水也向上移动。天空盒不会移动,但水和相机一样,我不想要。谁知道为什么?
//Camera
glRotatef(elevation, 1,0,0);
glRotatef(heading, 0,1,0);
glRotatef(rot, 0,0,1);
glTranslatef(-eyeX,-eyeY,-eyeZ);
//Skybox
glPushMatrix();
glTranslatef(eyeX,0,eyeZ);
drawCube();
drawSea();
glPopMatrix();
drawSea()
中没有使用任何翻译变量。
答案 0 :(得分:1)
嗯,对于天空盒,你不应该试图“补偿”相机。将模型视图矩阵重置为标识然后仅应用相机旋转要容易得多。碰巧这是通过简单地获取模型视图矩阵并将最后一列和最后一行清除为[0,0,0,1]来完成的。