摇摆/浮动相机

Jja*_*ack 3 c++ opengl

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

Cal*_*602 6

您如何看待以下内容?

  1. 计算cam_pos,cam_dest,cam_up像往常一样.
  2. 计算cam_right为交叉(cam_pos,cam_up)
  3. 创建一个浮动camera_time(如果走路camera_time += delta_time;)
  4. 计算 offset_factor = sin(camera_time);

然后你可以调用gluLookAt或类似的功能如下.

gluLookAt(cam_pos + cam_right * offset_factor, cam_des + cam_right * offset_factort, cam_up)
Run Code Online (Sandbox Code Playgroud)

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