2010-11-20 62 views
2

我绘制3D场景,像这样的原语:OpenGL ES的抗锯齿再次

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)。

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

但仍不能实现aa技术。 有人可以告诉我,有没有可能修改很多现有的代码?

回答

1

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

This对同一问题是一个很好的问题。

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

这可以看出here