使OpenGL多边形边缘平滑

时间:2015-01-14 22:52:38

标签: opengl-es opengl-es-2.0 cocos2d-x cocos2d-x-3.0

由于使用纹理倾斜矩形多边形,其边缘变得清晰。但内边缘(内切部分)仍然光滑。

Sharp edges of polygon

纹理已启用抗锯齿功能。

glTexParameteri( GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR );    

看起来抗锯齿只能在多边形的边界内工作,但不会在边缘上工作。 是否可以在边缘上启用抗锯齿,因此它们看起来像图片中的内边缘一样平滑? 使用Cocos2d-x v3.3。

1 个答案:

答案 0 :(得分:2)

启用多次采样使边缘更加平滑。这不是完美的解决方案,但在视网膜显示器看起来不错。在这个例子中,采样数2或9之间几乎没有差异。

enter image description here

以下是如何在Cocos2d-x中设置多次采样的代码:

// In AppController.mm  

// Init the CCEAGLView
CCEAGLView *eaglView = [CCEAGLView viewWithFrame: [window bounds]
                                     pixelFormat: (NSString*)cocos2d::GLViewImpl::_pixelFormat
                                     depthFormat: cocos2d::GLViewImpl::_depthFormat
                              preserveBackbuffer: NO
                                      sharegroup: nil
                                   multiSampling: YES
                                 numberOfSamples: 2 ];