文件名称:多重采样抗锯齿-简易多波形信号发生器电路设计
文件大小:46.65MB
文件格式:PDF
更新时间:2024-07-31 10:04:42
OpenGL ES3x 游戏开发 下卷吴 亚峰pdf
12.5 多重采样抗锯齿 //支持的扩展 6 ……//此处省略其他初始化的代码,读者可自行查阅 7 } 说明 上面的代码给出了如何读取设备 GPU 四方面的信息,包括 GPU 型号、生产商、 所支持的 OpenGL ES 版本、所支持的扩展功能。实际开发中读者可以根据需要读取 相应的信息。 12.5 多重采样抗锯齿 细心观察的读者可能会发现,本书前面的案例中棱角分明的物体(如立方体)在绘制时边缘 会有锯齿现象,屏幕像素颗粒越大的手机越明显。这主要是由于几何物体最终呈现到屏幕上之前 要进行离散化,分解为单个的像素。 在实际开发中,如果目标设备像素颗粒较大或应用本身对锯齿很敏感,则可以考虑使用多重采样抗 锯齿技术来改善这一问题。本节将介绍如何在OpenGL ES 3.0 中使用多重采样抗锯齿,具体内容如下。 12.5.1 基本知识与案例效果 介绍具体的案例之前有必要先对多重采样抗锯齿的基本原理有所了解,而多重采样抗锯齿是 依赖超级采样抗锯齿来实现的。因此介绍多重采样抗锯齿的原理之前,首先介绍超级采样抗锯齿 (Super-Sampling Anti-Aliasing,SSAA)的基本原理,具体情况如图 12-9 所示。 ▲图 12-9 超级采样抗锯齿原理 说明 图 12-9 左侧是未采用超级采样抗锯齿时像素的生成原理,图 12-9 右侧是采用超 级采样抗锯齿后像素的生成原理。 从图 12-9 中可以看出,超级采样抗锯齿的基本原理就是最终结果像素的颜色不来自于单独的 片元,而是根据一定的算法由周围相关的几个片元(一般选取 2 个或 4 个邻近片元)的颜色加权 平均求得。这样可以令图形的边缘色彩过渡趋于平滑,从视觉效果上看,锯齿现象就会大大改善。 提示 实际实现时一般会首先将原始图像映射到缓存并将其放大,对放大后的图像像 素进行超级采样。采样后再把最终像素还原为原来尺寸的图像,并保存到帧缓存替 代原图像存储起来,最终形成一帧结果画面。 而多重采样抗锯齿(MultiSampling Anti-Aliasing,MSAA)是一种特殊的超级采样抗锯齿。 其原理是只对 Z 缓存(Z-Buffer)和模板缓存(Stencil Buffer)中的数据进行超级采样抗锯齿的处 理,可以简单理解为寻找出物体边缘部分的像素与其周围的像素作一个平均运算,来达到图形边 缘平滑无锯齿的视觉效果。 提示 抗锯齿技术的种类很多,本节仅仅介绍多重采样抗锯齿与超级采样抗锯齿,感 兴趣的读者可自行查阅资料了解其他的抗锯齿技术。