更改分辨率时如何动态更新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
我想在 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