Преобразование размера дополненной реальности - PullRequest
2 голосов
/ 08 ноября 2011

В настоящее время мы работаем над приложением, которое будет отображать объекты, наложенные на изображение с камеры (в основном, дополненной реальности), но обнаруживаем, что объекты не выглядят «реальными». Причина этого в том, что размер наших объектов не меняется в размере так же, как объекты в реальной жизни.

Например, допустим, мы поместили объект в дополненную реальность на lat = 43, long = -70. Если мы начали приближаться к этой точке с помощью наших телефонов, мы должны видеть, что объект становится больше по мере приближения, но на данный момент это увеличение размера является линейным. Однако, когда мы начали приближаться к объекту в реальной жизни, мы увидели, что он становится больше в соответствии с определенной функцией.

Есть идеи, что это за функция?

Спасибо.

Ответы [ 2 ]

1 голос
/ 09 ноября 2011

Мне кажется, я нашел ответ здесь: http://en.wikipedia.org/wiki/Visual_angle. Похоже, правильная формула для использования - tan (2 * arctan (realSize / [2 * distance])) * screenSize.

Кто-нибудь, пожалуйста, исправьте это, если я ошибся с математикой.

1 голос
/ 08 ноября 2011

Должно быть линейным относительно определенной точки за камерой.

Представьте себе трехмерный мир, в котором вы проецируете изображение на плоскость (сделайте снимок). Если вы сохраните это при этом, объекты не будут изменять размер, когда ваша плоскость (камера) движется. Это была бы орфографическая проекция (http://en.wikipedia.org/wiki/Orthographic_projection).

Реальная камера работает как перспективная проекция (http://en.wikipedia.org/wiki/Perspective_(graphical)),, за исключением того, что точка находится перед камерой и изображение переворачивается на плоскости. Это означает, что размер объектов на вашем изображении является функцией, подобной этой

realSize * (constantDistanceBetweenPlaneAndPoint / distanceFromPoint)

Я не знаю достаточно о камерах, чтобы сказать, задокументировано ли это значение, но для определенного коэффициента масштабирования значение должно быть постоянным. Это просто вопрос экспериментального выяснения.

...