#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. Увы!