具有纹理映射的抗锯齿圆

时间:2014-09-13 13:33:24

标签: ios opengl-es cocos2d-iphone

我有一个关于具有纹理映射的圆的问题。我的代码运行良好,但我没有反边缘,所以它不光滑,看起来不好。我现在已经阅读了大约3个小时并找到了一些解决方案,但我不知道如何在我的代码中实现它们。有两种解决方案听起来不错。

首先是模糊的纹理,应该绑定而不是非模糊,以获得平滑的边缘。

其次,使用不透明度在边缘上添加颜色顶点以获得平滑边缘。我目前的绘制功能如下所示:

CC_NODE_DRAW_SETUP();

[self.shaderProgram use];

ccGLBindTexture2D( _texture.name );

glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);

ccGLBlendFunc( _blendFunc.src, _blendFunc.dst);

ccGLEnableVertexAttribs( kCCVertexAttribFlag_Position | kCCVertexAttribFlag_TexCoords );

// Send the texture coordinates to OpenGL
glVertexAttribPointer(kCCVertexAttrib_TexCoords, 2, GL_FLOAT, GL_FALSE, 0, _textCoords);

// Send the polygon coordinates to OpenGL
glVertexAttribPointer(kCCVertexAttrib_Position, 2, GL_FLOAT, GL_FALSE, 0, _triangleFanPos);

// Draw it
glDrawArrays(GL_TRIANGLE_FAN, 0, _numOfSegements+2);

我目前正在使用cococs2d版本3.我问了一个类似的问题,发现只有在cocos2d上启用多重采样的解决方案,但这会将我的fps打破到30。

所以也许有人可以帮助我。

0 个答案:

没有答案