Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
抗锯齿iPhone OpenGLES_Iphone_Opengl Es_Antialiasing - Fatal编程技术网

抗锯齿iPhone OpenGLES

抗锯齿iPhone OpenGLES,iphone,opengl-es,antialiasing,Iphone,Opengl Es,Antialiasing,我需要iPhone 3G(OpenGL ES1.1)中的抗锯齿,而不是带有OpenGL ES.2.0的iPhone 3Gs。 我已经画了3d模型,下一步是:模型边缘的像素看起来像牙齿 我尝试为纹理设置任何过滤器,但这种过滤器只会使纹理内部看起来更好 我怎样才能做好防伪工作? 也许我应该用光滑的画三角形?如果是,那么如何在OpenGL ES1.1中实现 谢谢。查看EGL_采样缓冲区和EGL_采样参数,以及 编辑:人力资源管理,至少就标准化方法而言,你运气不好。如该线程中所述,您可以渲染为较大的屏幕

我需要iPhone 3G(OpenGL ES1.1)中的抗锯齿,而不是带有OpenGL ES.2.0的iPhone 3Gs。 我已经画了3d模型,下一步是:模型边缘的像素看起来像牙齿

我尝试为纹理设置任何过滤器,但这种过滤器只会使纹理内部看起来更好

我怎样才能做好防伪工作? 也许我应该用光滑的画三角形?如果是,那么如何在OpenGL ES1.1中实现


谢谢。

查看EGL_采样缓冲区和EGL_采样参数,以及


编辑:人力资源管理,至少就标准化方法而言,你运气不好。如该线程中所述,您可以渲染为较大的屏幕外纹理并缩放为较小的屏幕四边形或多次抖动视图矩阵。

您可以渲染为较大的FBO,然后将其用作正方形上的纹理


请阅读文章以获得解释。

从iOS 4.0开始,OpenGL的Apple扩展直接支持全屏抗锯齿。基本概念类似于epatel的建议:将场景渲染到更大的帧缓冲区,然后将其复制到屏幕大小的帧缓冲区,然后将缓冲区复制到屏幕上。不同之处在于,复制/采样操作不是创建纹理并将其渲染到四边形上,而是通过单个函数调用执行(具体而言,
glResolveMultisampleFramebufferAPPLE()

有关如何设置缓冲区和修改图形代码的详细信息,请阅读为OpenGL ES 1.1编写的;也有人在解释同样的事情


感谢Bersaelor的帮助。

我们找到了实现这一目标的另一种方法。如果编辑纹理并添加(例如)透明像素的2像素帧,则纹理中的彩色像素将在必要时与透明像素混合,以提供基本的抗锯齿效果。你可以在这里阅读全文


这种方法的优点是,您不会渲染更大的图像,也不会复制缓冲区,甚至更糟糕的是,也不会从缓冲区生成纹理,因此不会对性能造成影响。

谢谢,但iPhone上的openGL不支持eglChooseConfig()。还是我错了?但是,当我设置GL_LINE_平滑并将gldrawArray与GL_LINE_STRIP一起使用时,我得到了超级抗锯齿线。但当我设置GL_三角形时,这种效果就消失了。看起来你是对的。古怪的无论如何,找到了一个具有一些替代方法的线程并编辑了答案。genpfault,可能是。我在谷歌上搜索了更多的网站,感觉只有一种方法——尝试使用这个或类似的。非常感谢你的链接!我将尝试“渲染到更大的FBO中”。我发布了一个新的答案:概念是相同的,但在较新版本的iOS中有一种更简单的方法来实现。此链接已断开