为什么我的three.js画布遮罩不起作用?

问题描述 投票:0回答:1

我正在尝试重现Szenia Zadvornykh在这里展示https://medium.com/@Zadvorsky/webgl-masking-composition-75b82dd4cdfd的例子

他的演示基于three.js r80,所以我引用了r101并试图删除大部分不相关的部分,并且只有顶部有网格和png掩码的场景。

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

评论// composer.addPass(maskPass)网格出现了。但似乎uniform sampler2D tDiffuse没有渲染传递的输出。

我希望在画布下看到网格助手和底层HTML内容,其中mask使画布透明。

更新,现在工作,感谢@ Mugen87:http://jsfiddle.net/mmalex/y2kt3Lrf/ three.js masking canvas transparency

three.js glsl shader mask
1个回答
1
投票

小提琴中的文件不匹配。如果我使用最新版本的three.js和相应的后期处理类,您的代码可以正常工作:

http://jsfiddle.net/pk24zby7/

three.js已经用renderTarget弃用了forceClearWebGLrenderer.render()R102参数。更改完成后,有必要更改示例目录中的许多文件,以避免警告甚至破坏。所以使用最新的three.js版本的后处理类是行不通的。

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

© www.soinside.com 2019 - 2024. All rights reserved.