Three.js 对象自身阴影取决于几何体

Lef*_*fty 3 shader shadow three.js

我在 clara.io 上玩了一点,我想重现用它完成的图像。

实际的

我已经在网上搜索了几天,希望重现他们所谓的“真实”渲染。正如您在图像上看到的,六个圆形部分在(一块)砖上有来自多个光源的阴影。

我不知道他们是如何做到的,无论是简单的设置还是复杂的着色器。我能做的最好的是我不知道如何根据它的几何形状来制作和阴影自身。

任何小径?

小智 5

实际上你需要:

renderer.shadowMapEnabled = true;
light.castShadow = true;
object.castShadow = true;
object.receiveShadow = true;
Run Code Online (Sandbox Code Playgroud)

我知道光和网格都具有相同的属性“castShadow”这有点违反直觉,但这就是它的工作原理。

如果阴影没有出现或出现不正确,请记住检查灯光的阴影相机的近、远和大小。

这是我做的一个例子:http : //shahar.thenachts.com/threejs/examples/selfShadow.html

加载模型(模型是地板和墙壁)及其纹理需要一些时间,因此请耐心等待。

要查看代码,请右键单击任意位置并选择“检查元素”。