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



我正试图将我的OpenGL应用程序从旧的固定函数系统切换到使用顶点缓冲对象。然而,在我目前的设置下,屏幕上没有显示任何内容。我肯定我犯了一些简单的错误,但是我看不出来。

gltest.hgltest.cpp

modelindex分别为我的vbo和ibo保存id。缓冲区对象是在GLTest::makeModel方法中建立的。我用来存储顶点数据的结构体有3个浮点数的位置,后面是4个无符号字符的颜色。

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

显示错误的完整Qt项目在这里可用。你需要安装GLEW

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

你似乎是混合旧的和新的在一起,例如你没有一个顶点或片段着色器加载。您的glEnableClientState(), glMatrixMode(), glLoadIdentity(), glVertexPointer(), glColorPointer()在现代OpenGL中贬值;已被着色器功能所取代。

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

相关内容

最新更新