Как сделать трекинг модели (чтобы элементы UI (модельки three.js) "смотрели" в камеру)
с помощью three.js подгружается некоторая 3D модель. Около этой модели расположены элементы UI (белые кружочки)

При клике на каждый из элементов UI (белые кружочки) выполняется какой то обработчик.
Проблема: Если вращать модельку, то вместе с моделькой вращаются и элементы UI. И происходит такое
Вопрос: Как сделать так, чтобы "лицевая сторона" элементов UI, независимо от того как перемещает пользователь камеру, "смотрела" прямо в камеру?
Ответы (1 шт):
Автор решения: MidNightElf
→ Ссылка
let ui_elems = [ // содержит имена объектов которым нужно смотреть в камеру
"UI_element1",
"UI_element2",
"UI_element3",
"UI_element4",
"UI_element5",
"UI_element6",
"UI_element7"
];
function rotate_ui(scene, ui_elems, camera_rotation) {
scene.traverse((child) => {
for (let i = 0; i < ui_elems.length; i++)
if (child.name == ui_elems[i]) {
child.rotation.z = camera_rotation.z;
child.rotation.y = camera_rotation.y;
child.rotation.x = camera_rotation.x;
}
});
}
function animate() {
renderer.render(scene, camera);
requestAnimationFrame(animate);
rotate_ui(scene, ui_elems, camera.rotation);
}