我一直在研究和试验不同的AA技术在OpenGL上的桌面和ES配置文件( es 2.0及以上),为屏幕外的FBO呈现2D内容。
到目前为止,我已经尝试了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产品上通过GL_MULTISAMPLE设置窗口时,我可以要求对默认帧缓冲区进行多次采样,但这对我来说没有好处,因为在屏幕外FBO中必须自己实现AA。
如果我以上的任何陈述都不正确,那么请跳进去,让我直截了当,这可能会有帮助!
谢谢。
发布于 2016-07-22 14:37:19
例如,glTexImage2DMultisample ( MSAA所需)
为什么要这么做?若要将此操作“在规范内”呈现给多样本存储缓冲区,然后使用glBlitFramebuffer将其解析为单个采样表面。
如果您不介意扩展,那么许多供应商实现这个扩展,它的行为就像EGL窗口表面,具有隐式的决心,这比上面的更有效,因为它避免了基于块的硬件体系结构上的内存往返。
GL_LINE_SMOOTH功能不可用。
你有一个有说服力的线条用例吗?如果您真的需要它们,那么只需对它们进行三角剖分,但是对于MSAA真正有用的3D内容,行实际上并不常用。
https://stackoverflow.com/questions/38509691
复制相似问题