我有个问题。我正在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]的值已经更改并重新分配。
新秀错误。