我用这样的图元绘制 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)。例如:
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH);
但是还是不能实现aa-technique。 谁能告诉我,是否可以不修改大量现有代码?
最佳答案
您正在 GL_TRIANGLE_STRIP 上使用 GL_LINE_SMOOTH。 iOS 不支持线条平滑,更重要的是只能在线条上使用。您是否在绘制之前启用混合?
This是关于同一问题的好问题。
最好的方法是使用边缘模糊 (alpha) 的纹理并将其应用于三角形。这将产生线条平滑效果。
这个可以看here .
关于ios - OpenGL ES 再次抗锯齿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4232577/