我一直在互联网上搜索一段时间,找不到任何解决方案。我想知道的是如何在OpenGL(或DirectX)中的3D相机中实现摆动/摆动运动,就像你在Minecraft,使命召唤等中找到的那样。我试过摆线,虽然它们工作我无法得到方向工作正常。
答案 0 :(得分:6)
您如何看待以下内容。
cam_pos
,cam_dest
,cam_up
。cam_right
计算为十字架(cam_pos
,cam_up
)camera_time
(如果走路,camera_time += delta_time;
)offset_factor = sin(camera_time);
然后您可以调用gluLookAt
或类似功能,如下所示。
gluLookAt(cam_pos + cam_right * offset_factor, cam_des + cam_right * offset_factort, cam_up)
这将使相机从右向左摆动。您可以通过一些调整为cam_up
向量添加相同内容。