我已经用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;
}

10-04 16:47