填充antialiased聚cocos2d

我怎样才能在Cocos2D框架中绘制填充多边形?

下面的代码绘制聚合,但没有antialiasing.What我应该改变?

void ccFillPoly( CGPoint *poli, int points, BOOL closePolygon ) { // Default GL states: GL_TEXTURE_2D, GL_VERTEX_ARRAY, GL_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY // Needed states: GL_VERTEX_ARRAY, // Unneeded states: GL_TEXTURE_2D, GL_TEXTURE_COORD_ARRAY, GL_COLOR_ARRAY glDisable(GL_TEXTURE_2D); glDisableClientState(GL_TEXTURE_COORD_ARRAY); glDisableClientState(GL_COLOR_ARRAY); glVertexPointer(2, GL_FLOAT, 0, poli); if( closePolygon ) // glDrawArrays(GL_LINE_LOOP, 0, points); glDrawArrays(GL_TRIANGLE_FAN, 0, points); else glDrawArrays(GL_LINE_STRIP, 0, points); // restore default state glEnableClientState(GL_COLOR_ARRAY); glEnableClientState(GL_TEXTURE_COORD_ARRAY); glEnable(GL_TEXTURE_2D); } 

仿真抗锯齿的一个好方法是在多边形周围添加透明的顶点。 这种方法是快速和美观的,但很难实现。 这是抗锯齿线的解决scheme 。

如果您不担心性能,则可以使用某个透明度多次渲染多边形,并偏移1个像素。 这将工作不纹理的多边形。