OpenGL ES 配置文件的抗锯齿技术
Anti-aliasing techniques for OpenGL ES profiles
我一直在桌面和 ES 配置文件(es 2.0 及更高版本)上研究和试用 OpenGL 中的不同 AA 技术,以将 2D 内容渲染到屏幕外 FBO。
到目前为止,我已经尝试了 FSAA、FXAA、MSAA,并使用了 GL_LINE_SMOOTH 功能。
我无法为 ES 配置文件找到合适的 AA 解决方案,由于 API 限制,我只能使用 FSAA 和 FXAA。例如 glTexImage2DMultisample(MSAA 需要)和 GL_LINE_SMOOTH 功能不可用。
FXAA 很聪明,但它会使文本字形变得弊大于利,它只真正适合 3D 场景。
FSAA 提供了非常好的结果,尤其是在 2 倍超级采样时,但消耗了太多额外的视频内存,我无法在我们的大多数硬件上使用。
我想问的是,在类似情况下,是否还有其他人在其他技术方面运气不错 - 即:使用 OpenGL ES 配置文件将抗锯齿 2D 内容渲染到屏幕外 FBO。
请注意:我知道在 ES profule 上通过 GL_MULTISAMPLE 设置 window 时,我可以要求对默认帧缓冲区进行多重采样,但这对我的渲染没有好处进入必须自己实施 AA 的屏幕外 FBO。
如果我上面的任何陈述是不正确的,那么请跳进并让我直截了当,这可能会有所帮助!
谢谢。
For example glTexImage2DMultisample ( required for MSAA )
为什么需要它?为此 "within spec" 渲染到多样本存储缓冲区,然后使用 glBlitFramebuffer 将其解析为单个采样表面。
如果您不介意扩展,那么许多供应商实现了这个扩展,它的行为类似于 EGL window 表面,具有隐式解析,这比上面的更有效,因为它避免了往返基于图块的硬件架构上的内存。
https://www.khronos.org/registry/gles/extensions/EXT/EXT_multisampled_render_to_texture.txt
and GL_LINE_SMOOTH functionality are unavailable.
您有令人信服的线条用例吗?如果您真的需要它们,那么只需对它们进行三角剖分,但对于 MSAA 真正有帮助的 3D 内容,线条确实不常用。
我一直在桌面和 ES 配置文件(es 2.0 及更高版本)上研究和试用 OpenGL 中的不同 AA 技术,以将 2D 内容渲染到屏幕外 FBO。
到目前为止,我已经尝试了 FSAA、FXAA、MSAA,并使用了 GL_LINE_SMOOTH 功能。
我无法为 ES 配置文件找到合适的 AA 解决方案,由于 API 限制,我只能使用 FSAA 和 FXAA。例如 glTexImage2DMultisample(MSAA 需要)和 GL_LINE_SMOOTH 功能不可用。
FXAA 很聪明,但它会使文本字形变得弊大于利,它只真正适合 3D 场景。
FSAA 提供了非常好的结果,尤其是在 2 倍超级采样时,但消耗了太多额外的视频内存,我无法在我们的大多数硬件上使用。
我想问的是,在类似情况下,是否还有其他人在其他技术方面运气不错 - 即:使用 OpenGL ES 配置文件将抗锯齿 2D 内容渲染到屏幕外 FBO。
请注意:我知道在 ES profule 上通过 GL_MULTISAMPLE 设置 window 时,我可以要求对默认帧缓冲区进行多重采样,但这对我的渲染没有好处进入必须自己实施 AA 的屏幕外 FBO。
如果我上面的任何陈述是不正确的,那么请跳进并让我直截了当,这可能会有所帮助!
谢谢。
For example glTexImage2DMultisample ( required for MSAA )
为什么需要它?为此 "within spec" 渲染到多样本存储缓冲区,然后使用 glBlitFramebuffer 将其解析为单个采样表面。
如果您不介意扩展,那么许多供应商实现了这个扩展,它的行为类似于 EGL window 表面,具有隐式解析,这比上面的更有效,因为它避免了往返基于图块的硬件架构上的内存。
https://www.khronos.org/registry/gles/extensions/EXT/EXT_multisampled_render_to_texture.txt
and GL_LINE_SMOOTH functionality are unavailable.
您有令人信服的线条用例吗?如果您真的需要它们,那么只需对它们进行三角剖分,但对于 MSAA 真正有帮助的 3D 内容,线条确实不常用。