2

我想在 THREE.js 中动态更改聚光灯阴影的分辨率。 这个问题首先看起来很相关,但与我的问题无关。我动态更改了阴影贴图的参数,但这不会影响场景。即使在此之后添加更多网格对象,它也不会影响场景/灯光中的阴影。当我使用初始值 (256,256) 时,它会应用,但不会在显示场景后应用。

light.shadowMapWidth = 2048; 
light.shadowMapHeight = 2048;

我尝试了以下方法,但没有奏效:

light.shadowMap.setSize(100,100)

当我更改 light.position 时,阴影会更新,但结果不会更新。似乎仅在初始化期间在开始时使用 .shadowMapWidth 属性。

4

1 回答 1

3

如果要动态更新阴影贴图的分辨率,可以使用以下模式:

light.shadow.mapSize.width = 1024;
light.shadow.mapSize.height = 1024;
light.shadow.map.dispose(); // important
light.shadow.map = null;

三.js r.74

于 2015-08-06T14:50:25.237 回答