围绕物体的轨道相机使其旋转到远处

时间:2016-10-31 23:04:02

标签: opengl visual-c++ glut glm-math

我只想进行一些基本的相机控制。向上,向下,向左,向右移动相机,并围绕原点旋转。

如果相机处于y = 0,则效果很好,但是一旦我向上移动相机,旋转就会开始远离原点。

我此刻不会进行流畅的运动或类似的事情。只是基础。

移动代码:

// increment camX/Y/Z as float      
vec3 camPos = vec3(camX, camY, camZ);
viewMatrix = lookAt(camPos, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 1.0f, 0.0f));

旋转代码:

// Increment camY angle as float
    float camOrbX = distance(vec3(camX, camY, camZ), vec3(0.0f)) * sin(camRotY);
    float camOrbZ = distance(vec3(camX, camY, camZ), vec3(0.0f)) * cos(camRotY);
    camX = camOrbX;
    camZ = camOrbZ;
    vec3 camPos = vec3(camX, camY, camZ);
    viewMatrix = lookAt(camPos, vec3(0.0f, 0.0f, 0.0f), vec3(0.0f, 1.0f, 0.0f));

0 个答案:

没有答案