2010-11-20 63 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