Спасибо за ваши объяснения, я понимаю, что такое проекция, вид и матрица модели. Я отредактировал свой вопрос, чтобы лучше объяснить, что мне нужно.
тоящее время я работаю над приложением дополненной реальности. Целевым устройством является оптический видоискатель HMD. Мне нужно откалибровать его дисплей для правильной регистрации виртуальных объектов. Я использовал этореализация SPAAM для Android, чтобы сделать это, и результат достаточно точен для моей цели.
Моя проблема в том, что приложение калибровки выдает на выходе4x4проекция матрица Я мог бы использовать непосредственно с OpenGL для примера. Но используемая мной структура дополненной реальности принимает только параметры оптической калибровки в форматеПоле зрения некоторый параметр +Соотношение сторон некоторый параметр + 4x4Посмотреть матрица.
Вот что у меня есть:
Правильный результат калибровки в неправильном формате:
6.191399, 0.114267, -0.142429, -0.142144
-0.100027, 11.791289, 0.05604, 0.055928
0.217304,-0.486923, -0.990243, -0.988265
0.728104, 0.005347, -0.197072, 0.003122
Вы можете взглянуть на код, который генерирует этот результатВот.
Что я понимаю, так это метод активного выравнивания по одной точке, создающий матрицу 3х4, а затем программа умножает эту матрицу на матрицу ортогональной проекции, чтобы получить результат выше. Вот параметр, используемый для получения ортогональной матрицы:
near : 0.1, far : 100.0, right : 960, left : 0, top : 540, bottom: 0
Неверный результат калибровки в правильном формате:
Param 1 : 12.465418
Param 2 : 1.535465
0.995903, -0.046072, 0.077501, 0.000000
0.050040, 0.994671, -0.047959, 0.000000
-0.075318, 0.051640, 0.992901, 0.000000
114.639359, -14.115030, -24.993097, 1.000000
У меня нет никакой информации о том, как эти результаты получены.
Я читаю эти параметры из двоичных файлов, и я не знаю, хранятся ли матрицы в основной форме строки или столбца. Таким образом, две матрицы, возможно, придется транспонировать.
Мой вопрос:Возможно ли, и если да, то как получить эти три параметра изпроекция первая матрица у меня есть?