所以我在问这个问题之前就来过这里,但到目前为止没有人能够回答我的问题。所以我制作了一个视频来演示这个问题。
到目前为止,我已经检查并重新检查了我的数学文件,我的两位大学教授也是如此,我检查了我的着色器,我只是使用了一个简单的通过着色器。
我已经创建了一个关于问题发生的视频,我将描述一些我的过程。
我已将旋转的初始值设置为,这将其推到出现问题的地步。
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,看看是否有帮助,但没有。
我还将更新旋转移动到我的按键内部,我也打算尽快提供更多代码。