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;

three.js r.74

于 2015-08-06T14:50:25.237 に答える