Масштабирование AR-изображений на основе расстояния от камеры

Я разрабатываюan augmented reality приложение для iPhone.

Что он должен делать, так это отображать изображения, назначенные географическим точкам, когда вы смотрите на них камерой. Каждое такое изображение можно понимать как рекламный щит, который имеет свое географическое положение и заголовок (понимается как угол между его плоскостью и осью направления на север).

Цель состоит в том, чтобы эти рекламные щиты выглядели более или менее как физические объекты. Они должны быть больше, если вы рядом с ними, и меньше, когда дальше. Они также должны отображаться в правильном ракурсе, когда вы не стоите прямо перед ними.

Я думаю, что я достиг этой цели более или менее.By measuring the initial heading from the iPhone to a picture I can decide about the rotation angle of the pictures as viewed by the camera (to see them in a proper perspective).

Однако, если речь идет о масштабировании их в зависимости от расстояния от телефона, я думаю, что я испортил свой подход. Я сделал предположение, что максимальная дальность обзора, скажем, 200 м. Тогда рекламные щиты, находящиеся на расстоянии 100 м от телефона, отображаются в 50% от их первоначального размера. Вот и все. Линейное масштабирование на основе максимального расстояния.

What I missed by this approach is the size of billboards (understood as physical objects). The way they display on the screen depends on their size in pixels only. This means that the resolution of the display is a factor that decides how you perceive them. So I assume that if you get two phones with the same screen dimensions but different resolutions, the same pictures will be of different sizes on both of them. Am I right?

Then finally, my question is Как приблизиться к масштабированию изображений, чтобы они хорошо выглядели на AR-виде?

Я думаю, что я должен принять во внимание некоторые параметры камеры. Когда объект размером 10x10 см находится прямо перед камерой, он может покрывать весь экран. Но когда вы помещаете его на несколько метров дальше, это становится незначительной деталью. Тогда как подойти к масштабированию? Если я решу назначить физические размеры моим виртуальным рекламным щитам, то как их масштабировать в зависимости от расстояния до камеры?

Am I right that I should assign physical dimensions in metres to each picture (no matter what their size in pixels is) and display them based on the dimensions and some camera-dependent scaling factor?

Не могли бы вы помочь мне в этом? Любые подсказки будут полезны. Спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос