【问题标题】:How to dynamically update the resolution of the Shadow Map in THREE.js when changing resolution?更改分辨率时如何动态更新THREE.js中Shadow Map的分辨率?
【发布时间】:2015-08-06 13:05:36
【问题描述】:

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

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

我尝试了以下方法,但没有成功:

light.shadowMap.setSize(100,100)

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

【问题讨论】:

    标签: three.js shadow shadow-mapping


    【解决方案1】:

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

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

    three.js r.74

    【讨论】:

      猜你喜欢
      • 2015-04-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-15
      • 1970-01-01
      • 2019-06-28
      • 2014-05-31
      相关资源
      最近更新 更多