gpt4 book ai didi

c++ - Opengl 和旋转的奇怪问题。有没有人见过这个?

转载 作者:行者123 更新时间:2023-11-28 07:52:02 26 4
gpt4 key购买 nike

所以我在问这个问题之前就来过这里,但到目前为止还没有人能够回答我的问题。所以我制作了一个视频来演示这个问题。

到目前为止,我已经检查并重新检查了我的数学文件,我的两位大学教授也是如此,我检查了我的着色器,我只是在使用一个简单的直通着色器。

我已经为发生的问题创建了一个视频,我将描述一些我的过程。

我已将旋转的初始值设置为,这会将其推到出现问题的位置。

rotX = 0.0f;
rotY = -22.0f;
rotZ = -62.0f;

这些值确保我不必在运行时旋转对象,这些值就是出现问题的地方。正如您在视频中看到的那样,奶牛将开始旋转,而代码中没有任何地方实际告诉它这样做。我将旋转矩阵和旋转值输出到我的日志文件,它们都是正常的。

http://www.youtube.com/watch?v=LB7_zftalT8

所以我以前从未在任何地方见过这个。如果有人看到这样的事情,请告诉我。我没有发布任何代码,因为有很多可能的问题,但是我可以按需提供代码片段,或者提供对我的源 svn 的访问。

我花了三个星期的时间调试这个问题,我至少有 10 只眼睛在看这个问题并审查我的代码。

唯一一个我无法解决的问题是内存损坏,希望你好运。

编辑:

代码示例: http://pastebin.com/hRSvEYAZ

我使用四元数进行旋转,我用轴角创建它们。然后我将我的旋转组合在一起并创建我的 4x4。

编辑:

我已经尝试了 MadCoreTom 提供的答案,它没有帮助,我也继续查看内存,我没有看到任何问题。

编辑:

所以我已经从我的四元数中删除了规范化调用,现在我只在我从一个轴角度创建我的四元数时对轴进行规范化。我还为我的四元数重写了 toMatrix3,看看是否有帮助,但没有。

我还将我的更新旋转移动到我的按键内部,我也打算尽快提供更多代码。

最佳答案

.normalize() 期间的舍入错误可能会导致值发生轻微变化,并且这种情况会不断累积,直到奶牛发疯。

您可以尝试如下操作,并在更新方法中使用 rx 代替 rotationX:

rx = rotationX.normalized();

而不是每次循环都修改值。

关于c++ - Opengl 和旋转的奇怪问题。有没有人见过这个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13576011/

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