【发布时间】:2013-09-05 17:00:52
【问题描述】:
我想知道是否有一种方法可以在没有“地面”平面的情况下投射阴影。 我想这样做是因为相机可以围绕物体移动,并且看到它穿过地面会很难看。
我正在使用 Three.js 最新版本的 WebGl 渲染器。
【问题讨论】:
标签: javascript three.js webgl shadow
我想知道是否有一种方法可以在没有“地面”平面的情况下投射阴影。 我想这样做是因为相机可以围绕物体移动,并且看到它穿过地面会很难看。
我正在使用 Three.js 最新版本的 WebGl 渲染器。
【问题讨论】:
标签: javascript three.js webgl shadow
是的,这可以通过将 ShadowMaterial 应用于平面几何体来实现。这种材质可以接收阴影并且是完全透明的。因此,您只需将平面几何体定位在场景中的所需位置,就可以开始了。看看这个。 https://threejs.org/docs/#api/en/materials/ShadowMaterial
【讨论】:
这在技术上是不可能的,你可以编写一个在透明平面上渲染阴影的着色器,这样当“相机”穿过平面时你不会注意到它,只有当它穿过阴影本身时才会注意到。
为此,您可以在像素着色器中的阴影比率和透明黑色或白色之间进行调整,然后在渲染上下文中设置相应的混合状态。
【讨论】: