为啥我的矩阵旋转会在 OpenGL 中倒退
Posted
技术标签:
【中文标题】为啥我的矩阵旋转会在 OpenGL 中倒退【英文标题】:Why would my matrix rotations be going backwards in OpenGL为什么我的矩阵旋转会在 OpenGL 中倒退 【发布时间】:2014-02-18 01:46:34 【问题描述】:我正在使用我以前制作的 float4x4 矩阵类。
直到现在我从未使用过openGL,并且我已经开始使用动画皮肤了。
但调试我的骨架时,我意识到我的插值位置是正确的,但旋转是向后的,所以如果一个人向前倾斜。动画骨架确实向前倾斜,但这些倾斜上的旋转方向相反。
我确实使用四元数计算。我以前在 DirectX 中做过这个,但我错过了 openGL 和 directX 之间的不同之处吗?
我只是想要一篇文章的链接,或者只是想解释旋转角度之间的任何主要差异,或者只是暗示为什么我的旋转方向可能相反
【问题讨论】:
【参考方案1】:我想知道您是否遇到了与着色器正在寻找的矩阵是列主要而不是行主要的事实有关的问题。 IE。您可能需要转置矩阵。
另一个问题可能是空间的惯用手,OpenGL 是右手的,所以 z 在屏幕上是负数。
我想到了另一件事。 OpenGL 中没有相机,相反,当您进行视图变换时,您正在执行几何图形的逆变换。
【讨论】:
哦,我在发送值之前转置了。 您使用的是固定流水线还是程序化流水线?即,您是否编写了自己的着色器?还是您使用的是 glBegin/glEnd? 我自己写了着色器 矩阵的乘法顺序呢?列主矩阵以相反的顺序相乘。你有任何可以发布的代码吗?在这一点上,我只是在黑暗中拍摄。 我正在做模型视图投影嗯,我不知道Skype是否可以工作?组织与此相关的所有内容以进行更深入的研究真是太麻烦了,我几乎放弃了在线帮助大声笑。如果不是,我明白。感谢您的尝试以上是关于为啥我的矩阵旋转会在 OpenGL 中倒退的主要内容,如果未能解决你的问题,请参考以下文章
定义 SnapKit 值时,CGAffineTransform 旋转会导致宽度和高度之间的切换
API 调用期间的 Android 屏幕旋转会产生 kotlinx.coroutines.JobCancellationException