【问题标题】:Disable MaskPass Shadows Three.JS禁用 MaskPass 阴影 Three.JS
【发布时间】:2023-12-26 19:02:01
【问题描述】:

我的场景中的阴影会因为包含 MaskPass 而变得混乱(即使 MaskPass 引用的场景/cam 中没有阴影投射对象或灯光)。

composer.addPass( clearPass );
composer.addPass( renderPass_background );
composer.addPass( maskPass1 ); // this is the problematic line
composer.addPass( renderPass_foreground );
composer.addPass( clearMaskPass );
composer.addPass( outputPass );

我相信我的问题与How to turn off shadows in MaskPass? 有关(我会对此发表评论,但这里没有街头信誉/50 代表)。似乎触发了额外的绘制阴影绘制,并且我的 THREE.ShadowMaterial / 阴影四边形开始填满。

我已经稍微编辑了 three.js 源代码,但如果可能的话,我们最好还是坚持使用原版代码。是否可以在不修改源代码的情况下解决 MaskPass 中的阴影贴图写入问题?

【问题讨论】:

    标签: three.js mask shadow


    【解决方案1】:

    几周前我在本地版本的 r86 中修复了这个问题。我通过将 noShadows bool/argument 传递给 WebGLRenderer 来做到这一点,WebGLRenderer 将控制调用分支到 WebGLShadowMap.render。然而,最近对 r87 的更新使问题再次出现,因为 WebGLShadowMap 已被扩展修改。

    【讨论】: