gpt4 book ai didi

c++ - 为太空模拟器/游戏旋转 spaceship 模型

转载 作者:太空狗 更新时间:2023-10-29 23:29:31 26 4
gpt4 key购买 nike

一段时间以来,我一直在研究太空模拟游戏。起初,我使用自己的 3d 引擎和软件光栅器。

但是当实现纹理的时间到了时,我放弃了。现在我在一段时间后重新开始,现在我正在使用 Opengl(带有 SDL)来渲染 3d 模型。

但现在我又碰壁了。

我不知道如何进行正确的旋转。作为一个空间模拟器,我想要与飞行模拟类似的控制

使用

glRotatef(angleX, 1.0f, 0.0f, 0.0f);
glRotatef(angleY, 0.0f, 1.0f, 0.0f);
glRotatef(angleZ, 0.0f, 0.0f, 1.0f);

或类似的,
如果我先将模型(宇宙飞船)向左旋转 90 度,然后再将其“向上”旋转,则无法正常工作。相反,它会滚动。

这是一张说明我的问题的图片。

Image Link

我尝试了几种技巧来尝试解决这个问题,但不知何故我觉得我遗漏了什么。几乎不可能找到模拟器样式旋转示例也无济于事。

所以我正在搜索示例、链接和旋转 3d 模型(如宇宙飞船、飞机)的理论。

我是否应该使用 3 个 vector (左、上、前)来确定方向,因为我还必须从模型的角度计算推进器的加速度和会随着旋转(方向?)而改变的东西指向一个像火箭发动机一样的方向。

我的数学不是很好,试图想象一个解决方案只会让人头疼

最佳答案

我不确定我是否完全理解这种情况,但听起来您可能在描述 gimbal lock .您可能想看看使用 quaternions代表你的轮换。

关于c++ - 为太空模拟器/游戏旋转 spaceship 模型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1217775/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com