编辑:
现在,我有两个使用第一个MeshBasicMaterial和第二个MeshLambertMaterial的准系统示例:
PointLight_sucks__MeshBasicMaterial.html
PointLight_sucks__MeshLambertMaterial.html
两者都使用PointLight的光源,但是LambertMaterial的几何图形并没有完全照亮(但屏幕上似乎有小的闪烁点?)。
我有一个用MeshBasicMaterial
制成的几何。它以某种方式照亮了自己:
我也有一个PointLight
:
light = new THREE.PointLight( 0xaaaaaa );
light.position.set = new THREE.Vector3(-400, 0, 0);
makeScene.scene.add( light );
但对现场没有影响。我希望场景仅由
PointLight
照明。我为我的几何体尝试了多种其他材料,例如MeshPhongMaterial,MeshNormalMaterial,MeshLambertMaterial和MeshFaceMaterial。
这就是我应用
MeshBasicMaterial
的方法:material = new THREE.MeshBasicMaterial( { map: texture } );
mesh = new THREE.Mesh(aGeometry, material);
我怀疑我的
PointLight
可能有问题。如何验证PointLight
是否正确应用于场景? 最佳答案
THREE.MeshBasicMaterial()
不受光线影响。将其更改为THREE.MeshLambertMaterial()
或THREE.MeshPhongMaterial()
编辑:
另外,根据http://threejs.org/docs/#Reference/Lights/PointLight,THREE.PointLight()
不会影响THREE.MeshBasicMaterial()
。
根据PointLight()
以及与MeshLambertMaterial()
的交互,您的代码中有一个错误:
线
light1.position.set = new THREE.Vector3(0, -120, 150);
light2.position.set = new THREE.Vector3(0, 120, 150);
应该
light1.position.set (0, -120, 150);
light2.position.set (0, 120, 150);
关于javascript - PointLight不会照亮任何东西,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29415263/