更改分辨率时如何动态更新THREE.js中Shadow Map的分辨率?

How to dynamically update the resolution of the Shadow Map in THREE.js when changing resolution?

我想在 THREE.js 中动态更改聚光灯阴影的分辨率。 This 问题首先似乎相关,但与我的问题无关。我动态地改变了 shadowmap 的参数,但这并不影响场景。即使在此之后我添加了更多网格对象,它也不会影响 scene/light 中的阴影。当我使用初始值 (256,256) 时,它会被应用,但不会在显示场景后应用。

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

我尝试了以下但没有用:

light.shadowMap.setSize(100,100)

当我更改 light.position 时,阴影会更新但结果不会更新。它似乎只在初始化过程中开始使用 .shadowMapWidth 属性。

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

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

three.js r.74