glPolygonOffset()错误的行

时间:2010-01-07 13:09:28

标签: c++ opengl lines

我有以下代码:

glEnable(GL_POLYGON_OFFSET_LINE);
glPolygonOffset(1,1); // or 40,40 etc... doesnt help at all

但这些线仍然是z-fighting,这是常见的bug还是什么......?我的线条厚度为1.0f,我在场景中绘制了最后一行。

此外,我已禁用GL_ALPHA_TEST和GL_LINE_SMOOTH并启用了GL_BLEND和GL_COLOR_LOGIC_OP

编辑:我已经尝试过GL_POLYGON_OFFSET_FILL,但它没有帮助。

2 个答案:

答案 0 :(得分:12)

GL_POLYGON_OFFSET_LINE仅适用于glPolygonMode(GL_FRONT_AND_BACK, GL_LINE)的多边形渲染。如果您使用GL_LINES绘制基元,则它不起作用。在这种情况下,您必须手动偏移顶点。

答案 1 :(得分:4)

尝试启用GL_POLYGON_OFFSET_FILL。 (我认为这些线条与您之前渲染的多边形相比是深度对抗的吗?)