为什么我的 three.js canvas 掩码不起作用?

Why does my three.js canvas masking not work?

我正在尝试重现此处显示的 Szenia Zadvornykh 示例 https://medium.com/@Zadvorsky/webgl-masking-composition-75b82dd4cdfd

他的demo是基于three.jsr80的,所以我参考了r101,尽量去掉了大部分不相关的部分,只有上面有网格和png遮罩的场景。

这是我的代码:http://jsfiddle.net/mmalex/y2kt3Lrf/

评论 // composer.addPass(maskPass) 网格显示。但是好像uniform sampler2D tDiffuse没有render pass的输出。

我希望在 canvas 下看到网格助手和基础 HTML 内容,其中掩码使 canvas 透明。

更新,现在工作,感谢@Mugen87:http://jsfiddle.net/mmalex/y2kt3Lrf/

您的 fiddle 中的文件不匹配。如果我使用最新版本的 three.js 和相应的 post 处理 类,您的代码工作正常:

http://jsfiddle.net/pk24zby7/

three.js 已弃用 WebGLrenderer.render()R102 中的 renderTargetforceClear 参数。更改完成后,有必要更改示例目录中的许多文件以避免警告甚至损坏。因此,将最新的 post-processing 类 与旧的 three.js 版本一起使用是行不通的。

由于更改已在 release note 中列出,我建议您阅读相应的 PR 以了解更多详细信息。