尝试通过OpenGL渲染顶点缓冲区对象时,屏幕上不显示任何内容

时间:2011-12-10 02:59:17

标签: c++ qt opengl

我正在尝试将OpenGL应用程序从旧的固定功能系统切换到使用Vertex Buffer Objects。但是,使用我当前的设置,屏幕上不显示任何内容。我确定我犯了一些简单的错误,但我看不到它。

gltest.h gltest.cpp

modelindex分别为我的vbo和ibo保存ID。缓冲区对象在GLTest::makeModel方法中设置。我用来存储顶点数据的结构有3个浮点数作为位置,后面跟着4个未签名的颜色。

它创建了三个以三角形排列的顶点,缓冲区对象只包含数字0,1和2.我用一个包含蓝色的QRgb对象调用该方法,所以有了这个设置,我希望看到屏幕上显示蓝色三角形。相反,没有显示任何内容。

显示错误的完整Qt项目here。你需要安装GLEW。

1 个答案:

答案 0 :(得分:0)

我从未使用OpenGL的固定管道版本编程,但我在v3.0 +中做了很多工作,所以请仔细考虑我的建议!

您似乎将旧旧混合在一起,例如您没有加载顶点或片段着色器。您的glEnableClientState()glMatrixMode()glLoadIdentity()glVertexPointer()glColorPointer()在现代OpenGL中已被弃用;已被着色器功能取代。

每当我遇到这种事情时,我会使用glGetError()丢弃我的gl调用,你只有一个。