摇摆/浮动相机

时间:2011-05-20 21:12:16

标签: c++ opengl

我一直在互联网上搜索一段时间,找不到任何解决方案。我想知道的是如何在OpenGL(或DirectX)中的3D相机中实现摆动/摆动运动,就像你在Minecraft,使命召唤等中找到的那样。我试过摆线,虽然它们工作我无法得到方向工作正常。

1 个答案:

答案 0 :(得分:6)

您如何看待以下内容。

  1. 像往常一样计算cam_poscam_destcam_up
  2. cam_right计算为十字架(cam_poscam_up
  3. 创建一个浮动camera_time(如果走路,camera_time += delta_time;
  4. compute offset_factor = sin(camera_time);
  5. 然后您可以调用gluLookAt或类似功能,如下所示。

    gluLookAt(cam_pos + cam_right * offset_factor, cam_des + cam_right * offset_factort, cam_up)
    

    这将使相机从右向左摆动。您可以通过一些调整为cam_up向量添加相同内容。