OpenGL ES系列 之 深入 - 7:全屏抗锯齿 FSAA

功夫羊 kongfu.yang(a)gmail.com http://www.play3d.net




FSAA是Full Screen AntiAlias的缩写,这是一种可由硬件实现的低成本抗锯齿方法,由pipeline在光栅化阶段做一下Super Sampling,效果不错,速度也快。OpenGL ES给厂商实现AntiAlias提供了非常大的灵活性,只有这种MultiSample有标准的接口:glEnable (GL_MULTISAMPLE)。
要启用FSAA是有前提的,即硬件支持,并且选择了合适的EGLConfig。所谓合适的Config就是有SAMPLE_BUFFERS(通常1个 Buffer)、指定了SAMPLE复杂度(2或4):
        // choose config
        EGLint cfg_attr_list[] = {
            EGL_BUFFER_SIZE, bpp,
            EGL_SAMPLE_BUFFERS, sampleBuffers,
            EGL_SAMPLES, samples,
            EGL_NONE
        };
然后在绘制时enable之即可。

奇怪的是,在PVR PCE里,这个特性无法正常使用,可以取得Config,但是CreateContext会失败。

在X51v WM5.0下运行得倒还好。



如果觉得本文有用,请抽空点击感兴趣的广告。您的举手之劳,可以给作者巨大的鼓励!