我有一个非常简单的场景,其中有一个 .dae 网格,网格下方有一个 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
:
你可以看到阴影是如何消失的!
现在,我在这里做错了什么?AFAIK,光应该在各个方向均匀分散!此外,还有一个问题,我似乎无法在场景中添加多个 SpotLights!如果我这样做,一切都会完全减慢 - 这是故意的吗?也许是因为我对它们都启用了阴影...
@Neil,您的代码中也会发生同样的事情!