VBO和PolygonMode行

时间:2014-01-25 11:01:45

标签: opengl

我目前正在尝试使用多边形模式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);

1 个答案:

答案 0 :(得分:4)

您使用的是GL_LINES而不是GL_LINE。如果您不确定要使用哪个枚举,只需查看文档,它将为您提供可能值的列表。如果您需要更多有关调试应用程序的帮助,请在每次opengl调用后尝试调用glGetError(http://www.opengl.org/sdk/docs/man/xhtml/glGetError.xml),这样您就可以看到出现错误的函数,然后您就可以谷歌了。