Three.js投下阴影

时间:2013-09-02 14:39:09

标签: javascript three.js webgl shadow

我想知道是否有一种投射阴影的方法,而没有投射它的“地面”平面。 我想这样做,因为相机可以在物体周围移动,看到它穿过地面会很难看。

我正在使用带有WebGl渲染器的Three.js最新版本。

2 个答案:

答案 0 :(得分:1)

这在技术上是不可能的,您可以编写一个着色器,将阴影渲染到透明平面上,这样当“摄影机”穿过平面时,只有当它穿过阴影本身时才会注意到它。

为此,您可以在像素着色器中的shadowratio和透明的黑色或白色之间进行渲染,然后在渲染上下文中设置相应的混合状态。

答案 1 :(得分:1)

是的,这可以通过将 ShadowMaterial 应用于平面几何体来实现。这种材质可以接收阴影并且是完全透明的。因此,您只需将平面几何体定位在场景中所需的位置即可。看看这个。 https://threejs.org/docs/#api/en/materials/ShadowMaterial