c - OpenGL ES 2.0 : Object flattens as it rotates

标签 c opengl-es-2.0

我有一个问题。我正在 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/

相关文章:

c - 使用 getchar_unlocked() 读取输入

iphone - glClear 对填充率影响大吗?

java - 使用 OpenGL ES 2.0 的 Android 动态壁纸?

c - OpenSSL SSL_write 抛出写入失败

c - 如何计算 C 字符串中字符 '/' 出现的次数?

c - 为什么 isdigit 总是返回 false?

android - 如何在 Linux 和 Android 中使用 OpenGL-ES 2.0

ios cocos2d 2.0 使用什么代替 glNormalPointer

android - 绘图 GL_POINTS

MySQL 服务器已消失 从表中选择行时出错