代码之家  ›  专栏  ›  技术社区  ›  Sergey Kopanev

反锯齿iPhone Opengles

  •  5
  • Sergey Kopanev  · 技术社区  · 15 年前

    我需要在iPhone3G(OpenGLES1.1)中进行抗锯齿处理,而不是在iPhone3GS中使用OpenGLES.2.0。 我已经画了3D模型,接下来:模型边缘的像素看起来像牙齿。

    我试过为纹理设置任何过滤器,但是这个过滤器只能使内部的纹理看起来更好。

    我怎样才能做好抗口臭? 我可以用平滑的方法画三角形吗?如果是,那么在OpenGL ES1.1中如何可能?

    谢谢。

    4 回复  |  直到 9 年前
        1
  •  4
  •   epatel    15 年前

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

    看一看 this 文章的解释。

        2
  •  8
  •   Community CDub    8 年前

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

    有关如何设置缓冲区和修改绘图代码的详细信息,可以阅读 a tutorial on the Gando Games blog 它是为OpenGLES1.1编写的;还有 a note on Apple's Developer Forums 解释同样的事情。

    感谢Bersaelor pointing this out in another SO question .

        3
  •  2
  •   genpfault    15 年前

    查看egl_sample_buffers和egl_samples参数 eglChooseConfig() 以及 glEnable(GL_MULTISAMPLE) .

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

        4
  •  2
  •   Dreamwalker    9 年前

    我们找到了另一种实现这一目标的方法。如果编辑纹理并添加透明像素的2像素帧,则纹理中的彩色像素将在必要时与透明像素混合,从而产生基本的抗混叠效果。你可以在这里阅读全文 our blog .

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