我目前正在尝试使用多边形模式LINES绘制线条。我已经能够立即模式多次成功完成这项工作。但是现在我试图用VBO来做这件事并且无法找出原因。
以下是代码示例。据我所知,所有偏移,混合和颜色方法都可以正常工作,但除非我在glDrawArays下执行GL_LINES,否则不会绘制线条。
glPolygonMode(GL_FRONT_AND_BACK, GL_LINES);
glLineWidth(3.0f);
glColor4f(0.0f, 0.0f, 0.0f, 0.5f);
glEnable(GL_POLYGON_OFFSET_LINE);
glPolygonOffset (-5.8f, -1.0f);
glEnable (GL_BLEND);
glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnableClientState(GL_VERTEX_ARRAY);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, vHandle);
glBufferDataARB(GL_ARRAY_BUFFER_ARB, vBuffer, GL_STATIC_DRAW_ARB);
glVertexPointer(3, GL_FLOAT, 3 << 2, 0L);
glDrawArrays(GL_TRIANGLES, 0, count /* elements */);
glBindBufferARB(GL_ARRAY_BUFFER_ARB, 0);
glDisableClientState(GL_VERTEX_ARRAY);
glDisable(GL_POLYGON_OFFSET_LINE);
答案 0 :(得分:4)
您使用的是GL_LINES而不是GL_LINE。如果您不确定要使用哪个枚举,只需查看文档,它将为您提供可能值的列表。如果您需要更多有关调试应用程序的帮助,请在每次opengl调用后尝试调用glGetError(http://www.opengl.org/sdk/docs/man/xhtml/glGetError.xml),这样您就可以看到出现错误的函数,然后您就可以谷歌了。