三个 JS 影子问题

THREE JS Shadow Issues

我有一个“旗帜”动画,当布料 material 在风中飘动并自行折叠时,我希望它在自身上显示阴影 - 查看 fiddle明白我的意思:

https://jsfiddle.net/gilomer88/zfa9eLbo/38/

我已经将我的两个灯都设置为投射阴影,如下所示:

light1.castShadow = true;

我的“旗帜”对象设置为接收阴影:

flagMesh.receiveShadow = 真;

但是我没有在旗帜上看到任何阴影 - 我做错了什么?

我检查了你的fiddle,你似乎在你的光变量(light1,light2)上写道:

light1.castsShadow = true;

而不是:

light1.castShadow = true;

这有助于显示某种阴影,但看起来 like so。 这看起来像阴影人工制品。您可以对它们做的是将 LightShadow 的 bias 更改为较小的值。在你的 fiddle 的情况下,投射这个阴影的光似乎是 light2 所以你可以像这样改变它的偏差值:

light2.shadow.bias = -0.0001;

当然,您可以尝试使用正值,看看什么看起来更好,尝试使用灯光位置等。