Свет как дочерний элемент камеры, но положение Y привязано к сцене?

#three.js

#three.js

Вопрос:

Как и название, возможно ли это? И как я могу это сделать?

Я хочу, чтобы положение X и Z прожектора перемещалось за камерой. Положение Y по-прежнему привязано к сцене.

Я пробовал это:

 spotLight = new THREE.SpotLight( 0xffffff );
camera.add( spotLight );

....

function animate() {
    spotLight.position.y = scene.position.y   800;

    request = requestAnimationFrame(animate);
    controls.update();
    render();
}
  

Но все XYZ положение прожектора все еще движется вместе с камерой.

Ответ №1:

Это невозможно как дочерний объект. Матрицы дочерних объектов относятся к матрицам их родителей. Я полагаю, вы могли бы попытаться переместить прожектор с помощью камеры, не создавая дочернего элемента камеры.

 spotLight = new THREE.SpotLight( 0xffffff );

// ....

function animate() {
  spotLight.position = camera.position.clone();
  spotLight.position.y = scene.position.y   800;

  request = requestAnimationFrame(animate);
  controls.update();
  render();
}