【发布时间】:2014-10-09 12:18:33
【问题描述】:
我现在正在尝试将给定 4×4 矩阵下的相机视口更改为
R11 R12 R13 transx
R21 R22 R23 transy
R31 R32 R33 transz
0 0 0 1
R 是 3×3 旋转矩阵,而 transx、transy、transz 是 3D 空间中沿 x、y 和 z 轴的平移。
我的代码如下
eyex = transx;
eyey = transy;
eyez = transz;
atx = transx;
aty = transy;
atz = transz+1;
gluLookAt (R11*eyex + R12*eyey + R13*eyez, R21*eyex + R22*eyey + R23*eyez, R31*eyex + R32*eyey + R33*eyez, atx, aty, atz, 0.0, 1.0, 0.0);
但是,我无法得到正确的结果。 (旋转似乎没问题,但翻译出现问题)
有人能找出我代码中的错误吗?
【问题讨论】:
-
只需使用
glRotatef/glTranslatef来构建您的相机矩阵。我喜欢将此视为反向/负向执行所有操作,例如向左移动场景以向右移动虚拟摄像机。如果您已经有一个相机矩阵,只需使用glLoadMatrixf,但如果它是一个世界到相机矩阵,则首先需要inverting。
标签: opengl