.dae メッシュが 1 つあり、メッシュの下に 7000*7000 平面がある非常に単純なシーンがあります。高い で照らしたいSpotLight
ので、メッシュが地面に影を落とします。しかし、何かが壊れているようです!をどれだけ高くSpotLight
しても、飛行機が明るくなることはありません!また、小さな正方形 (周囲) にある間は、メッシュを少しだけ明るくします。
ここで状況を見ることができます:
メッシュ (モンスター) を動かすとすぐに、もう点灯しません。
これは、ライトをインスタンス化する方法です。
// create a spotlight
self.spotLight = new THREE.SpotLight();
// set its position
self.spotLight.position.y = 1000; //I recon it needs to be relatively high so it lights up everything
self.spotLight.position.x = 0; //(0, 0) are the coordinates where the mesh is spawned, and are the center of the plane
self.spotLight.position.z = 0;
self.spotLight.castShadow = true;
飛行機はこんな風に作られています。
//The plane.
self.plane = new THREE.Mesh(new THREE.PlaneGeometry(self.groundSize, self.groundSize), new THREE.MeshLambertMaterial({color: 0x5C8A00}));
self.plane.receiveShadow = true;
self.plane.position.x = 0;
self.plane.position.y = -26;
self.plane.position.z = 0;
また、ここに別の写真があります。今回は、たくさん追加しましたPointLights
。
影がまだ消えている様子がわかります!
さて、私はここで何が間違っていますか?私の知る限り、光はすべての方向に均等に分散するはずです! また、別の問題があります。シーンに複数のスポットライトを追加できないようです! これを行うと、すべてが完全に遅くなります - これは意図されたものですか? たぶん、それらすべてでシャドウを有効にしたためです...
@ニール、あなたのコードでも同じことが起こります!