如何在Three.js中相对于摄像机位置移动聚光灯?

时间:2014-06-13 10:27:14

标签: javascript three.js

我希望有一个可以与相机一起移动的聚光灯。如果我只想让聚光灯始终与相机保持在同一位置,则以下代码有效:

var pointLight = new THREE.PointLight( 0xffffff, 1, 200 );
pointLight.position = camera.position;
scene.add(pointLight);

但是,我怎样才能让它在聚焦前一直在相机前一定距离?或者一般来说,总是在相对于相机位置的相同位置?

2 个答案:

答案 0 :(得分:2)

为相机的层次结构添加灯光。 然后光的坐标系相对于相机的坐标系。 然后只需沿z轴移动它。

camera.add( pLight );
pLight.position = new THREE.Vector3(0,0,10);

答案 1 :(得分:-1)

你可以这样做:

point.position = camera.position

每次渲染之前。

如果您使用类似OrbitControl的内容,它将如下所示:

orbit.addEventListener('change', function () {
  render();
});

function render () {
  lights.point.position = camera.position;
  renderer.render(scene, camera);
}

希望这有帮助!