我已经用Lambert材料正确加载了球体网格。
我想在点击交叉点的位置添加光源。target
=单击的对象。to
=我的点击的vector3。
在dblclick事件监听器上,我这样做:
var newLight = new THREE.PointLight( 0x808F8F,20 );
newLight.position.set(to.x,to.y,to.z);
scene.add( newLight );
newLight.updateMatrix();
newLight.updateMatrixWorld();
target.material.needsUpdate = true;
但是什么也没有发生,只有当我将另一个对象添加到场景而不是单击的目标对象上时,灯光才可见。
我如何强制重新计算目标物体上的光源?
最佳答案
我最近有一个非常类似的问题,您需要更新受光照影响的所有材料。
例如:
for(i in scene.children){
if(scene.children[i].material) scene.children[i].material.needsUpdate = true;
}