ES开发者指南写得非常详细:
而對于OpenGL ES3.0,GL_APPLE_framebuffer_multisample扩展已经失效不能再使用了。于是我在网上搜了许多资料不过有帮助的不多,比较有方向性的文章是OpenGL官方wiki上关于多重采样的介紹:
不过这篇文章针对的是OpenGL与OpenGL ES稍微有些差异。于是本人借助Apple的文档结合这篇官维终于把它捣鼓出来了。
其实大部分代码与Apple官方所描述的差不多,有几个需要改动的地方:
下面我提供比较完整的使用范例(带有部分的Objective-C代码):
我们看到以上代码定义了两组FBO和RBO一组是用於绘制到目标窗口的(不带MSAA的),另一组是用于图形渲染的采用MSAA。在最后绘制时会把MSAA的FBO像素拷贝到单样本的FBO用于显示。
以下是源文件嘚主要代码片段:
大致使用流程如上述代码所示我用11寸的MacBook Air上模拟器看,效果十分明显(因为MacBook Air不是retina屏)上述demo中使用了4个样本,基本够用叻