如何在更改分辨率时动态更新THREE.js中阴影贴图的分辨率?

时间:2015-08-06 13:05:37

标签: three.js shadow shadow-mapping

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

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

我尝试以下操作,但它不起作用:

light.shadowMap.setSize(100,100)

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

1 个答案:

答案 0 :(得分:1)

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

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

three.js r.74