我有一个问题。我正在 Raspberry Pi 上使用 OpenGL ES 2.0 旋转屏幕上的对象。旋转的一部分似乎工作正常,但另一部分完全使物体变平?到目前为止,我已经尝试了 2 个旋转函数,结果完全相同。深度缓冲区也已启用并设置。我开始认为我的投影矩阵可能是这里的问题,但我不确定。现在要发布的代码太多,当有人可以缩小此行为可能的来源时,我将用代码更新此问题。
这是上述问题的视频:
https://www.youtube.com/watch?v=3mDMG7Eypj4
提前致谢。
最佳答案
所以我终于找到了我的问题......我自己编写了矩阵乘法函数。问题是我将乘法分配给原始矩阵之一,导致行中的结果扭曲。
void matrix_multiply(GLfloat * matrix1, GLfloat * matrix2) {
matrix1[0] = matrix1[0] * matrix2[0] + matrix1[4] * matrix2[1] ... // etc
[...]
matrix1[4] = matrix1[0] * matrix2[4] + ... //etc
}
现在,如果您注意到,matrix1[0] 的值已经更改并被重新分配。
菜鸟错误。
关于c - OpenGL ES 2.0 : Object flattens as it rotates,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21770699/