我希望有一个可以与相机一起移动的聚光灯。如果我只想让聚光灯始终与相机保持在同一位置,则以下代码有效:
var pointLight = new THREE.PointLight( 0xffffff, 1, 200 );
pointLight.position = camera.position;
scene.add(pointLight);
但是,我怎样才能让它在聚焦前一直在相机前一定距离?或者一般来说,总是在相对于相机位置的相同位置?
答案 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);
}
希望这有帮助!