摇摆/摆动相机

发布于 2024-11-09 07:30:33 字数 132 浏览 0 评论 0原文

我已经在互联网上搜索了一段时间,没有找到解决方案。我想知道的是如何在 OpenGL(或 DirectX)中的 3D 相机中实现摆动/摆动运动,就像您在 Minecraft、使命召唤等中找到的那样。我尝试了摆线,但它们工作时我无法获得方向才能正常工作。

I have been searching on the internet for a while now, for a solution with nothing. What I want to know is how to implement a swing/bobbing motion in a 3D Camera in OpenGL(or DirectX) like you find in Minecraft, Call of Duty, etc. I tried cycloids, while they work I can't get the direction to work correctly.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

初心未许 2024-11-16 07:30:33

对于下面的事情你有什么看法呢。

  1. 照常计算 cam_poscam_destcam_up
  2. cam_right 计算为 cross (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)

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

What do you think about the following.

  1. compute cam_pos, cam_dest, cam_up as usual.
  2. compute cam_right as cross (cam_pos, cam_up)
  3. create a float camera_time (if walking, camera_time += delta_time; )
  4. compute offset_factor = sin(camera_time);

Then you can call gluLookAt or similar function as follows.

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

This will make the camera swing from right to left. You can add the same for the cam_up vector with some tweaking.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文