Я использую Vuforia SDK для создания своего приложения дополненной реальности. Используя trackableResult->getPose(), я могу получить матрицу представления модели маркера целевого кадра. Но мне также нужна матрица чистого вида для некоторых вычислений. Есть ли способ получить его?
Получите Pure View Matrix в Vuforia
Ответы (2)
В дополнение к комментарию Пиди выше, вот изображение, которое я нашел чрезвычайно полезным, на которое ссылается этой веб-страницы.
Извините, я не мог оставить это как комментарий, но они не разрешают изображения в комментариях.
Обратите внимание, что в разных текстах могут использоваться немного разные имена для каждого пробела, но общая идея должна быть одинаковой!
Мое первое знакомство с OpenGL было фактически с Vuforia два месяца назад, и теперь я пришел к выводу, что имена переменных Vuforia в их примерах сбивают с толку.
Я изменил название того, что они называют «modelViewMatrix_Vuforia», на «viewMatrix», потому что это действительно так. Он преобразует точки из мирового пространства в пространство взгляда/пространство глаза.
В моем понимании «матрица модели» - это то, что будет уникальным для каждой модели и будет размещать мои модели по отношению друг к другу. Вам не обязательно нужен один; если ваши модели уже определены в мировом пространстве, вы можете просто забыть об этом.
Но если ваши модели импортированы (например, мои сделаны с помощью Blender), то они, вероятно, определены в пространстве модели с началом в их собственном центре масс. В этом случае вам нужна матрица модели, чтобы разместить их вдали от начала координат, иначе все ваши модели будут наложены друг на друга.
Может быть, то, что я написал, недостаточно ясно... Я сам только что понял это на этой неделе. Я хотел сделать отражение среды с помощью кубической карты, и мне понадобилась инвертированная матрица вида, что привело меня именно к заданному вами вопросу.