Комплексная трехмерная сцена

Работа с 2D и 3D графикой, видео, звуком.

Модератор: Mikle

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Комплексная трехмерная сцена

Сообщение Amed » 27.03.2009 (Пт) 11:34

Товарищи, нужна консультация по сложности работы.

Постановка задачи
Сформировать трехмерную сцену по облакам точек и соответствующим фотографиям с камеры.

Начальные условия
На мобильном роботе стоит дальномер (1 штука) и несколько камер (на текущий момент одна). Угол зрения дальномера регулируется от половины до четверти сферы, угол зрения камер меньше. Кадр охватывает порядка 70-75 градусов по горизонтали и 50-60 градусов по вертикали.
Взаимное расположение устройств известно.

C помощью dx9 запросто строю сцену по одиночному снимку дальномера и соответствующим ему снимкам камер.
Пример 1 [61 Кб]
Пример 2 [75 Кб]

Проблема
Итак, необходима сцена, склеенная из нескольких таких отдельных.
Таким образом, у меня есть N облаков точек с дальномера и k*N фотографий с камер. Перемещения робота между съемками я могу определить, надо считать их известными.
Если просто провести рендер нескольких облаков, получается сцена со множеством артефактов - одни и те же поверхности рисуются несколько раз с незначительными смещениями из-за неточности определения перемещения робота между съемками.

Вот иллюстрация того, как это выглядит:
Пример 3 [197 Кб]
В примере совмещены 12 снимков дальномера и 12 снимков камеры, на скриншот попала примерно половина снимков.

Первая проблема
Такой подход практически недопустим, необходимо преобразовывать отдельные облака точек в одно и триангулировать его как одно целое с учетом знаний о том, что одна и та же поверхность встречается в таком облаке несколько раз.

Вторая проблема
Для рендера в DX необходимо разбивать итоговую поверхность на субповерхности, каждой из этих субповерхностей должна соответствовать своя текстура. Т.о., разбивка должна производиться на основании данных об положении/ориентации камер.

Третья проблема
Произрастает из второй. Изображение одной и той же области может присутствовать на разных кадрах, при этом желательно использовать наиболее четкое изображение, находящееся под возможно более перпендикулярным углом к камере - и на возможно меньшем расстоянии.

Подытожив вышеизложенное, задаю вопросы.
1) есть ли уже готовые подобные алгоритмы?
2) какое время может занять решение проблем 1-3 с "нуля"?

Во время написания поста мне пришла простейшая мысль о том, как просто можно реализовать последние две проблемы при решенной первой.

Благодарю за внимание, слежу за ответами.

Debugger
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1667
Зарегистрирован: 17.06.2006 (Сб) 15:11

Re: Комплексная трехмерная сцена

Сообщение Debugger » 27.03.2009 (Пт) 22:39

Интересно придумал!
Решение банальное (но сложное) - усреднять координаты точек, которые ближе друг к другу, чем какая-то подобранная константа. А вот что делать с текстурами, которые тоже "бегают"... Тоже усреднять?
P.S. Если скриншот №3 немного затемнить и нарисовать на нем призрака, его можно считать "картинкой-ужастиком"


Вернуться в Мультимедиа

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20

    TopList