C OpenGL ES 2.0:对象在旋转时变平
我有个问题。我正在用OpenGLES2.0在Raspberry Pi上旋转屏幕上的一个对象。旋转的一部分似乎工作正常,但另一部分完全使对象变平?到目前为止,我已经尝试了两个旋转函数,得到了完全相同的结果。深度缓冲区也已启用和设置。我开始认为我的投影矩阵可能是这里的问题,但我不确定。现在有太多的代码要发布,当有人能够缩小这种行为的来源时,我会用代码更新这个问题 以下是上述问题的视频:C OpenGL ES 2.0:对象在旋转时变平,c,opengl-es-2.0,C,Opengl Es 2.0,我有个问题。我正在用OpenGLES2.0在Raspberry Pi上旋转屏幕上的一个对象。旋转的一部分似乎工作正常,但另一部分完全使对象变平?到目前为止,我已经尝试了两个旋转函数,得到了完全相同的结果。深度缓冲区也已启用和设置。我开始认为我的投影矩阵可能是这里的问题,但我不确定。现在有太多的代码要发布,当有人能够缩小这种行为的来源时,我会用代码更新这个问题 以下是上述问题的视频: 提前谢谢。所以我终于解决了我的问题。。。我自己写的矩阵乘法函数。问题是,我将乘法分配给一个原始矩阵,导致结果向下
提前谢谢。所以我终于解决了我的问题。。。我自己写的矩阵乘法函数。问题是,我将乘法分配给一个原始矩阵,导致结果向下扭曲
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]的值已经更改并重新分配
新手犯了错误。那个视频是私人的。但是下意识的猜测:你是在每一帧都重新生成旋转矩阵,还是在对现有矩阵进行变异?@Tommy我在每一帧都从一个身份矩阵生成。@Tommy视频也被改为公开。@ReX357你在使用消隐吗?@whiteFang我不是,但我刚刚尝试过使用它,这让事情变得更糟。