2014-02-14 64 views
0

我遇到问题。我在Raspberry Pi上用OpenGL ES 2.0在屏幕上旋转一个对象。部分旋转似乎工作正常,但另一部分完全平坦的对象了?到目前为止,我已经尝试了2个旋转函数,结果完全相同。深度缓冲区也被启用和设置。我开始认为我的投影矩阵可能是这里的问题,但我不确定。现在有太多的代码要发布,我会用代码更新这个问题,当有人可以缩小这种行为可能来自何处时。OpenGL ES 2.0:对象在旋转时变平坦

下面是上述问题的视频:提前

https://www.youtube.com/watch?v=3mDMG7Eypj4

感谢。

+0

该视频是私密视频。但是一个下跪的猜测:你是在每一帧重新生成一个旋转矩阵还是你在改变现有的矩阵? – Tommy

+0

@Tommy我从每个框架的身份矩阵生成。 – ReX357

+0

@汤米视频也改为公开。 – ReX357

回答

1

所以我终于想出了我的问题......我自己写了矩阵乘法函数。问题是我正在将乘法分配给原始矩阵之一,从而导致行下方出现扭曲结果。

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]的值已经更改并被重新分配。

新人的错误。