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

新秀错误。

09-10 12:59