Порядок поворота углов Эйлера камеры ARKit

#augmented-reality #scenekit #arkit #euler-angles #realitykit

#дополненная реальность #scenekit #arkit #углы Эйлера #realitykit

Вопрос:

Я новичок в ARKit, и мне нужно знать, каков точный порядок поворота камеры в ARKit?

Я много искал в Google эту информацию, но четкого ответа нет.

Пожалуйста, мне нужен ответ с примером печати матрицы преобразования камеры.

 (Rx, Ry, Rz) 
  

или

 (Rz, Ry, Rx) ?
  

Ответ №1:

В ARKit, SceneKit и RealityKit ориентация узла (объекта) по умолчанию выражается как

  • шаг или вращение вокруг X
  • рыскание, или вращение вокруг Y
  • крен, или вращение вокруг Z

введите описание изображения здесь

В документации разработчика Apple говорится:

SceneKit применяет эти вращения относительно свойства поворота узла в обратном порядке компонентов: сначала крен Z , затем рыскание Y , затем тангаж X . Свойства поворота, eulerAngles и orientation влияют на вращательный аспект свойства преобразования узла. Любое изменение одного из этих свойств отражается на других.

Ответ

Порядок поворота объектов ARKit равен:

 (Rz, Ry, Rx)
  

Комментарии:

1. Для меня объяснение в ссылках очень четкое, потому что я получил его в курсе OpenGL, почему мне интересно тогда? мой вопрос заключается в том, что когда мы применяем составные преобразования, например rz.ry.rx или любой другой порядок, мы могли бы вычислить угол рыскания из atan2 (sin y, cos y), почему они учитывают эти значения в столбце 0 x и столбце 1 x? Хотел бы я объяснить свою точку зрения.. Спасибо @Andy Fedoroff

2. Пожалуйста, дайте мне ссылку Apple, показывающую atan2(sin(y0, cos(y)) расчеты.

3. Мне нужны две вещи: во-первых, мне нужно, чтобы кто-нибудь показал мне после вычисления матрицы вращения в порядке ARKit, какие эти столбцы содержат cos или sin для всех углов x, y, z, чтобы понять все, включая то, почему они считают yaw = atan2f (camera.transform.columns.0.x, camera.transform.columns.1.x) Во-вторых; хотя мы могли бы получить yaw из camera.eulerAngle. y почему они пересчитывают это? Они рассчитали это на основе угла x, является ли угол x причиной блокировки игры? если да, порядок поворота камеры должен быть rz.rx.ry или ry.rx.rz, где rx посередине, исходя из этого: youtube.com/watch?v=zc8b2Jo7mno

4. Хорошо, я понял. Я постараюсь ответить на это завтра.

5. Извините, @lady, я не нашел никакой информации о порядке поворота в Apple matrix. Увы!