Windows/Mac平台:
在cocos/platform/desktop/CCGLViewImpl.cpp 然后在GLViewImpl::initWithRect函数中添加下面语句
glfwWindowHint(GLFW_SAMPLES,4);4是一个采样的等级,你可以输入2,4,8 数值越大抗锯齿的效果越好,不过经过本人测试一般的android机器也就支持到4再高就无法运行了。
IOS平台:
找到工程目录下proj.ios_mac/ios/AppController.mm文件,然后找到下面这行代码
CCEAGLView *eaglView = [CCEAGLView viewWithFrame: [window bounds]
修改 multiSampling: NO 为 multiSampling: YES
修改 numberOfSamples: 0 为 numberOfSamples: 4
Android平台:
首先,在cocos\platform\android\java\src\org\cocos2dx\lib目录下找到Cocos2dxActivity.java文件,在文件头包含下面几项:
import javax.microedition.khronos.egl.EGL10;
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.egl.EGLdisplay;
import android.opengl.GLSurfaceView.EGLConfigChooser;
接下来,在Cocos2dxActivity类的内部添加一个类 如下:
public class BaseConfigChooser implements EGLConfigChooser {
public BaseConfigChooser(){
}
public EGLConfig chooseConfig(EGL10 egl,EGLdisplay display){
int CONfig_ATTRIBS[] =
{
EGL10.EGL_RED_SIZE,5,
EGL10.EGL_GREEN_SIZE,6,
EGL10.EGL_BLUE_SIZE,
EGL10.EGL_DEPTH_SIZE,16,
EGL10.EGL_ALPHA_SIZE,EGL10.EGL_DONT_CARE,
EGL10.EGL_STENCIL_SIZE,
EGL10.EGL_SURFACE_TYPE,EGL10.EGL_WINDOW_BIT,
EGL10.EGL_SAMPLES,4,
EGL10.EGL_NONE
};
int[] num_config = new int[1];
egl.eglChooseConfig(display,CONfig_ATTRIBS,null,num_config);
int numConfigs = num_config[0];
if (numConfigs <= 0) {
throw new IllegalArgumentException("No configs match configSpec");
}
EGLConfig[] configs = new EGLConfig[numConfigs];
egl.eglChooseConfig(display,configs,numConfigs,num_config);
EGLConfig config = configs[0];
if (config == null) {
throw new IllegalArgumentException("No config chosen");
}
return config;
}
}
然后,再找到 onCreateView 函数,在函数内添加下面代码:
glSurfaceView.setEGLConfigChooser(new BaseConfigChooser());
最后,打开Cocos2dxRenderer.java文件找到onSurfaceCreated函数添加下面代码:
pGL10.glEnable(pGL10.GL_MULTISAMPLE);
开启抗锯齿前后对比图:
最后提醒大家,开启抗锯齿后对性能影响比较大,请谨慎使用。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。