OpenGL-矩阵逻辑错误
OpenGL - Matrix Logic Error
我单独使用模型矩阵将我加载的模型(Blender中的猴子脸)传输到从模型空间到世界空间的vbo中。然而,模型被扭曲得令人难以置信(延伸到无穷大),我很困惑为什么会发生这种情况。
这段视频显示了模型围绕y轴不断旋转,试图清楚地显示我的问题。我确信我加载的OBJ模型是有效的。熔岩纹理被绑定到模型上,使其更容易看到。
视频还显示了控制台显示我正在发送到顶点着色器的当前矩阵。在存储器中,矩阵以行的主要顺序表示,因此以下矩阵:
|1 0 0 0 |
|0 1 0 0 |
|0 0 1 10|
|0 0 0 1 |
作为以下C++浮点数组发送到我的顶点着色器:
{1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 10, 0, 0, 0, 1}
我相信我在数学上犯了一个新手错误。仅仅从模型中就可以发现明显的错误吗?在我的顶点着色器(GLSL)中,我使用以下代码行:
gl_Position = mvp * vec4(position, 1.0);
其中"mvp"是视频中看到的结果矩阵,位置包含正在处理的模型的当前顶点的位置(在模型空间中)。我不明白为什么会发生这些失真,这可能是我程序的另一个方面的错误吗(即我没有显示足够的代码)?
结果矩阵的必需换位。之前没有解决这个问题,因为位置超过了默认的远剪辑,所以模型被剪辑了。
相关文章:
- C++atioglxx.pdb未加载错误glBufferData OpenGL
- OpenGL 4.3 错误地将第 4 个纹理坐标映射到与第 3 个纹理坐标相同的位置
- 现代OpenGL和GLEW Libraray的编译错误
- GLFW DDS 加载函数的 OpenGL 链路错误
- MSVC __debugbreak() 与 openGL 错误回调一起使用时不会产生调用堆栈
- C++ OpenGL 中,绘制形状返回错误
- OpenGL C++(制作简单窗口时抛出错误)
- CMake on FindOpenGL.cmake 中的错误,当使用导入的目标 OpenGL::GLU?
- C++/OpenGL 随机分段错误
- 当我在网格/面中实现索引时,为什么它会返回OpenGl错误
- 在 CLion (MacOS) 中使用 OpenGL 和 GLUT 库时出现链接错误
- OpenGL, GLFW, GLAD. glViewport(0, 0, 800, 600) 抛出内存错误
- OpenGL "Segmentation fault"错误
- 在运行时处理 OpenGL 错误
- OpenGL 顶点缓冲区类重定义和模板方法错误
- 假设传递给 OpenGL 的结构数组的内存布局存在潜在错误
- 如何找到 NVIDIA OpenGL 驱动程序的错误 ID 名称?
- C++生成文件错误 (openGl)
- cocos2dx错误:opengl版本太旧
- SDL错误.OpenGL激活,使用SDL_GL_SwapBuffers()