WebGLRenderTarget图像别名

时间:2017-07-31 14:08:51

标签: three.js

在解决问题in this question之后,我终于从渲染目标中获取了图像数据。 BUT ,该图像数据似乎没有使用抗锯齿。 (它似乎也没有任何alpha值,其中0

我看到in this thread抗锯齿无法用于渲染目标,但那是在2011年。情况仍然如此吗?如果我想将它用于渲染目标,是否需要使用后处理抗锯齿?

这个问题出现在r76(我之前使用的问题)和最新的r86中。

这是一个示例图片,如果有帮助的话。灰色背景是渲染到主画布的图像,而透明背景来自渲染目标。你可以真正看到面之间边缘的锯齿。

enter image description here

1 个答案:

答案 0 :(得分:0)

这个答案有些晚了(3 年后),但在本次讨论中是解决方案:https://discourse.threejs.org/t/why-is-a-custom-fbo-not-antialiased/1329

  • 随着three.js (R101) 的下一个版本,可以使用一种新型的渲染目标来解决这个问题。 WebGLMultisampleRenderTarget 支持多重采样渲染缓冲区。您现在可以执行“渲染到纹理”并获得抗锯齿渲染结果。不再需要像 FXAA 这样的后处理 AA。

重要提示:需要使用 WebGL 2 渲染上下文,因为多采样渲染缓冲区是 WebGL 2 功能。 -