代码之家  ›  专栏  ›  技术社区  ›  Alex Khoroshylov

为什么我的3.js画布掩蔽不起作用?

  •  0
  • Alex Khoroshylov  · 技术社区  · 7 年前

    我想复制一下这里展示的斯泽尼亚·扎德沃尼克的例子 https://medium.com/@Zadvorsky/webgl-masking-composition-75b82dd4cdfd

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

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

    评论过 // composer.addPass(maskPass) 网格出现了。但看起来不像 uniform sampler2D tDiffuse 具有render pass的输出。

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

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

    0 回复  |  直到 7 年前
        1
  •  1
  •   Mugen87    7 年前

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

    http://jsfiddle.net/pk24zby7/

    三.js 已经否决了 renderTarget 和 forceClear 参数来自 WebGLrenderer.render() 具有 R102 . 更改完成后,必须更改examples目录中的许多文件,以避免警告甚至破坏。所以使用最新的后处理类 三.js 版本不起作用。

    因为更改列在 release note ,我建议您阅读相应的PRs以了解更多详细信息。