OpenGL ES再次抗锯齿

时间:2010-11-20 11:55:30

标签: ios opengl-es antialiasing

我用这样的基元绘制3d场景:

glLoadIdentity();

glColor4f(model[i][8], model[i][9], model[i][10], 1.0);
glTranslatef(current_x, current_y, current_z);


glVertexPointer(3, GL_FLOAT, 0, &squareVertices[0]);
glEnableClientState(GL_VERTEX_ARRAY);
glShadeModel(GL_FLAT);

glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);

当然没有抗锯齿。我已阅读并尝试了很多建议(包括stackoverflow)。 e.g:

glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);

但仍无法实现aa-technique。 任何人都可以告诉我,是否有可能不修改现有的许多代码?

1 个答案:

答案 0 :(得分:1)

您正在GL_TRIANGLE_STRIP上使用GL_LINE_SMOOTH。 iOS不支持线条平滑,更重要的是只能在线条上使用。你在画画之前是否启用了混合?

This是关于同一问题的一个很好的问题。

最好的方法是使用带有模糊边缘(alpha)的纹理并将其应用于三角形。这将创建线条平滑效果。

可以看到here