В моем приложении я пытаюсь сделать поворот группы объектов через Вращения, которые я получаю от API ориентации устройств.«Применение» или «выпекание» вращения в THREE.Group
В какой-то момент я хочу, чтобы калибровал поворот моего объекта, чтобы он выглядел в том же направлении, что и моя камера. (имеющие значения вращения (0,0,0)!)
Но так как я устанавливаю вращение объектов с помощью
var euler = new THREE.Euler(x, y, z, 'ZXY'); // angles come from Device Orientation
this.object.setRotationFromEuler(euler);
мой объект всегда принимает абсолютное вращение моего устройства. Для калибровки я хочу установить поворот в своей группе, а затем «применить» матрицу вращения к группе. Эффективно устанавливая значения вращения x, y, z в 0, поэтому я могу установить их снова с абсолютными значениями, но группа должна вращаться относительно калиброванного вращения.
Раньше я пробовал sth как this, но поскольку у меня в группе нет геометрии, это не сработает. Должен ли я проходить через каждый под-объект и применять поворот к каждой геометрии или есть ли способ установить состояние вращения как «базу» для группы?
Единственное другое решение, о котором я могу думать, это сохранить текущие значения вращения при калибровке запроса и всегда вращаться относительно них, но было бы неплохо, если бы был такой метод.