2

我将 WebGLDeferredRenderer 用于一个简单的场景(由一个模拟房间的立方体和两个用于测试阴影的小立方体制成),但我无法显示场景中使用的 areaLight 生成的任何阴影!

这个演示中,有 3 个区域灯,但它们都不会在单个对象上产生阴影(它们只是照亮“房间”)。

我可以使用任何特定的着色器来解决这个问题吗?或者更好……有没有机会在延迟渲染中投下阴影?:)

4

4 回答 4

3

Three.js r.56 目前不支持使用延迟渲染和WebGLDeferredRenderer.

下面是两个示例,其中点光源和聚光灯在 three.js 中使用延迟渲染投射阴影,但它们使用的是库的修改版本

http://alteredqualia.com/three/examples/webgl_deferred_shadowmap.html

http://alteredqualia.com/three/examples/webgl_deferred_shadowmap_point.html

然而,还没有区域灯的例子。

所以你想要的是可行的,只是还不支持,而不是区域灯。

三.js r.56

于 2013-02-23T16:15:37.903 回答
0

使用定向或点光源。区域光不投射阴影。

于 2013-02-23T12:45:11.340 回答
0

我相信区域光影还没有实现,尽管有人可能正在研究它,所以将来可能会实现。您可以尝试自己做,但这需要一些严肃的编程技能,这不是一个容易解决的问题:)

我认为目前您可以在延迟渲染器中使用点光和定向光影,甚至可能使用点光影。

您可以通过仅对阴影使用低强度的不同灯光类型来伪造阴影,但这可能看起来有点不稳定。

于 2013-02-23T12:49:44.600 回答
0

我认为你必须根据面积的大小来推回你的阴影贴图源......你也可以根据你必须推动你的阴影施法者多远的距离来使用百分比更接近过滤的眼球。

于 2014-07-17T20:01:11.727 回答