我需要在iPhone 3G (OpenGL ES1.1)中使用抗锯齿,而不是使用OpenGL ES.2.0的iPhone 3Gs。我已经绘制了3d模型,并有next:模型边缘的像素看起来像牙齿。
我试过为纹理设置任何滤镜,但这个滤镜只会让里面的纹理看起来更好。
我怎样才能做好反失真呢?也许我应该使用任何平滑来绘制三角形?如果是,那么在OpenGL ES1.1中是如何实现的?
谢谢。
发布于 2010-02-11 15:51:19
您可以渲染到更大的FBO,然后将其用作正方形上的纹理。
请看this的文章以获得解释。
发布于 2010-11-04 23:40:04
从iOS 4.0开始,通过OpenGL的苹果扩展直接支持全屏抗锯齿。基本概念类似于epatel的建议:将场景渲染到更大的帧缓冲区上,然后将其复制到屏幕大小的帧缓冲区,然后将该缓冲区复制到屏幕上。不同之处在于,不是创建纹理并将其渲染到四边形上,而是通过单个函数调用(具体地说,glResolveMultisampleFramebufferAPPLE()
)执行复制/采样操作。
有关如何设置缓冲区和修改绘图代码的详细信息,您可以阅读a tutorial on the Gando Games blog,它是为OpenGL ES 1.1编写的;还有a note on Apple's Developer Forums解释了同样的事情。
感谢Bersaelor的pointing this out in another SO question。
发布于 2010-02-10 14:22:52
查看eglChooseConfig()和glEnable(GL_MULTISAMPLE)的EGL_SAMPLE_BUFFERS和EGL_SAMPLES参数。
编辑: Hrm,apparently至少在标准化方法方面,你不走运。正如在该线程中提到的,您可以渲染到较大的屏幕外纹理,并缩放到较小的屏幕四边形,或者多次抖动视图矩阵。
https://stackoverflow.com/questions/2235709
复制相似问题