ディレクショナル ライトに shadowCascade を使用しようとしています。https://github.com/mrdoob/three.js/issues/1888に記載されている例のコードを使用すると、シェーダー エラー + 定期的なエラーが発生しますObject [object Object] has no method 'decompose'
。これはめったに使用されず、文書化されていない機能であるため、デバッグをどこから始めればよいかさえわかりません。すべてのコードを省略して、シーンの実行中にライトのコンソールで shadowCascade を有効にしても、上記の定期的なエラーが表示されます。
どんな助けでも大歓迎です!
よろしく、 ドイデル
PS: 人々は常に何らかのコードを見たいと思っています。だからここにいくつかのコードがあります。
var sunlight = new THREE.DirectionalLight();
sunlight.intensity = 0.5;
sunlight.position.set(100, 300, 100);
sunlight.castShadow = true;
sunlight.shadowBias = -0.0001;
sunlight.shadowMapWidth = sunlight.shadowMapHeight = 2048;
sunlight.shadowDarkness = 0.7;
var d = 250;
sunlight.shadowCameraLeft = -d;
sunlight.shadowCameraRight = d;
sunlight.shadowCameraTop = d;
sunlight.shadowCameraBottom = -d;
sunlight.shadowCameraNear = 200;
sunlight.shadowCameraFar = 800;
sunlight.shadowDarkness = 0.6;
sunlight.shadowBias = 0.000065;
sunlight.shadowCascade = true;
sunlight.shadowCascadeCount = 3;
sunlight.shadowCascadeNearZ = [ -1.000, 0.9, 0.975 ];
sunlight.shadowCascadeFarZ = [ 0.9, 0.975, 1.000 ];
sunlight.shadowCascadeWidth = [ 2048, 2048, 2048 ];
sunlight.shadowCascadeHeight = [ 2048, 2048, 2048 ];
sunlight.shadowCascadeBias = [ 0.00005, 0.000065, 0.000065 ];
sunlight.shadowCascadeOffset.set( 0, 0, -10 );
scene.add( sunlight );
sunlight.lookAt(new THREE.Vector3(0,0,0));