OpenGL 全屏抗锯齿解决场景闪烁问题

全屏抗锯齿(FullSceneAnti-Aliasing)可以有效的消除多边形结合处(特别是较小的多边形间组合中)的错位现象,降低了图像的失真度。全景抗锯齿在进行处理时,须对图像附近的像素进行2-4次采样,以达到不同级别的抗锯齿效果。简单的说也就是将图像边缘及其两侧的像素颜色进行混合,然后用新生成的具有混合特性的点来替换原来位置上的点以达到柔化物体外形、消除锯齿的效果。同时此方法也会带来模糊的效果。
最近在opengl 渲染过程中,出现了当摄像头的视角倾角比较大的时候,远处的场景就会出现闪烁的情况。

这里写图片描述
基于这一点,分析锯齿出现的可能原因是物体渲染不够平滑,即像素的过渡没做好。由于不图图层间会有像素过渡,特别是远方单个像素的信息量大,造成显示效果不断切换。启用采用全屏抗锯齿,采样次数为3次。

mRenderSurface.setAntiAliasingMode(ISurface.ANTI_ALIASING_CONFIG.MULTISAMPLING);
        mRenderSurface.setSampleCount(3);

效果如下:

全屏抗锯齿

可以看出,经过抗锯齿后,道路的边缘不会出现明显的颗粒状,另外远处的道路也不会出现断断续续的情况了。
发布了10 篇原创文章 · 获赞 0 · 访问量 9959

猜你喜欢

转载自blog.csdn.net/wsx1048/article/details/53396426