在特定的正交区域中投射阴影

时间:2013-12-30 05:46:12

标签: three.js

我想创建一个SpotLight,使阴影贴图覆盖特定的拼写区域,或PlaneGeometry。但是,默认设置似乎会根据灯光的截头积分创建阴影区域。鉴于截头体与飞机相比旋转和缩放,不可能简单地改变截头体。我必须使它非常大以覆盖预定的区域,然后分辨率很低。

是否有某种方法可以创建在特定收件人区域(平面或正交区域)上计算阴影的灯光?

1 个答案:

答案 0 :(得分:0)

你应该创建第二个聚光灯,它是第一个聚光灯的子元素,位置设置为0,0,0。你应该将目标设置为飞机。并且只有阴影设置为真。

这样你可以假装第一个聚光灯,但是有一个详细的阴影贴图。

编辑旧答案(误导):

  

可以使用定向光来创建正交   阴影。

     

https://github.com/mrdoob/three.js/blob/master/src/extras/renderers/plugins/ShadowMapPlugin.js#L169

     

此方向灯可以设置为仅阴影。

     

https://github.com/mrdoob/three.js/blob/master/src/lights/DirectionalLight.js#L16

     

可以使用shadowCamera设置预期的帧。

     

https://github.com/mrdoob/three.js/blob/master/src/lights/DirectionalLight.js#L20-L26

     

可以通过将位置设置为计算来设置角度   飞机正常。