问题描述
|
我一直在互联网上搜索一段时间,没有任何解决方案。我想知道的是,如何像在minecraft,《使命召唤》等中找到的那样,在OpenGL(或DirectX)的3D相机中实现摆动/摆动运动。正确工作的方向。
解决方法
您如何看待以下内容。
照常计算
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
向量添加相同的内容。