Одной из актуальных задач современной компьютерной графики является
текстурирование. Текстурирование позволяет повысить реалистичность
компьютерных моделей, которые в настоящее время используются повсеместно.
В связи с востребованностью реалистичных высокодетализованных моделей все
острее встает вопрос получения высококачественных текстурных карт. Несомненно,
есть решения на базе сложных оптоэлектронных устройств, но очень высокая
стоимость и невысокая производительность препятствуют их широкому
распространению. Однако, существуют методы, с помощью которых можно получить
качественную текстуру используя обычный цифровой фотоаппарат или позволяющие
восстанавливать одновременно геометрию и текстуру объекта. Именно такие методы
восстановления текстур набирают сейчас всё большую популярность.
Классификация методов
Можно выделить два основных подхода к восстановлению текстур:
Восстановление непосредственно в процессе визуализации, включает такие методы как
Bidirectional texture function (BTF) [3],[4] - группа методов(аналог BRDF), подразумевающая
накопления большой базы данных по типам поверхностей, с сохранением информации об отражающей
способности, деталях поверхности и др. Имея большую базу данных текстур при различных углах зрения
и освещении можно построить BTF для представления свойств поверхности. Так как метод подразумевает
определение свойств поверхности в различных условиях, то не возможно достичь высокого разрешения и
автоматического удаления перекрываемых областей.
Mosaicing [5],[6],[7] - совокупность методов, применяемых в автоматической
склейке(automatic stitching) последовательностей изображений. Все такие методы используют
соответствия изображений для восстановления геометрических переходов между ними.
На входе у метода набор изображений, на выходе панорама(т.е. изображение, полученное
склейкой фотографий из набора) или текстурированный куб, т.е. примитивная модель
помещения. Этот подход так же не позволяет достичь высокого разрешения и автоматического
удаления перекрываемых областей. Применяется в электронных путеводителях и
конструировании панорам.
View-depended textures [1],[2] - метод впервые описан P.E. Devebec в [2],
подразумевает высококачественную реконструкцию текстуры в процессе визуализации.
Объекты текстурируются с использованием всех доступных данных. Для получения
качественного результата используется альфа-блендинг, причем значения коэффициента
прозрачности вычисляется на основе угла между направлением камеры на фото и
синтезированной сцене. Чем меньше угол, тем больше значение коэффициента прозрачности,
что означает, что текущее фото лучше всего подходит для описания текстуры.
Предварительное восстановление текстуры,
данные методы обычно тесно связаны с восстановление геометрии(см. схему).
Как правило, такой подход применяется при использовании дорогостоящих систем
3D-сканирования. Поэтому в данном виде эта группа методов узкоспециализирована
и малораспространена. Но существует разновидность данного подхода,
когда текстура строиться полностью отдельно от геометрии.
Геометрия модели обычно представляет собой триангулированную поверхность.
Так же на входе данные методы имеют набор калиброванных фотографий,
т.е. собственно фотография объекта, а так же информацию о положении камеры
в пространстве относительно объекта и характеристиках оптики.
В этом направлении существуют два основных метода:
Texture weaving - представлен M. Callieri и д.р. в [10],
включает в себя четыре основных этапа:
Определение видимости
На первом этапе для каждой грани модели определятся набор снимков на которых, данная грань видима, а так же угол под которым она видима.
Существуют два основных подхода к определению видимости - первый аналитический. Аналитический подход фактически представляет собой классическую трассировку лучей. Основной идеей является "пропускание" луча через каждую точку каждой фотографии из набора. Если данный луч пересекает данную грань модели, то она обозначается видимой и текущая фотография попадает в набор для данной грани. Этот метод требует большой вычислительной мощности и значительного времени, поэтому чаще применяется второй подход. Второй подход основан на использовании аппаратно-ускоренного OpenGL. Модель визуализируется таким образом, что виртуальная камера OpenGL совпадает с положением реальной камеры, с который был сделан снимок. При визуализации каждая грань модели получает некоторый цвет, который определяет видима она или нет на данной фотографии. Авторы метода называют данный процесс face-to-color encoding(кодирование видимости псевдоцветами). Его версия с некоторыми улучшениями, дает результаты вполне сравнимые по качеству с первым подходом, но гораздо быстрее. Так же второй метод проще реализовать и он требует меньшей вычислительной мощности.
Patch generation - кластеризация, данные о видимости используются для кластеризации поверхности таким образом, чтобы для каждого кластера можно было выбрать такую фотографию, которая наилучшим образом подходила бы на роль текстуры для граней из кластера. Кластеризации модели производиться с целью минимизировать количество фотографий, задействованных при текстурировании. Так как чем меньше фотографий задействовано, тем меньше разница в цветах между гранями модели.
Sub-texture packing - выделение текстур для кластеров. Каждая 3D-точка кластера проектируется с использованием параметров камеры на соответствующую фотографию. Текстура для кластера получается упаковкой участков фото, соответствующих граням кластера, и последующей генерация uv-координат (координат в пространстве текстуры). В процессе упаковки используется сортировка граней по размеру и помещении их в текстурное пространство с целью минимизации площади текстуры. Чтобы избежать перебора всех вариантов расположения используются дополнительный структуры данных (например дискретные хэш-карты).
Постобработка. Подразделяется на два этапа: цветовое усреднение и устранение неоднородностей. Так же возможна генерация одной общей результирующей текстуры.
Image-based texturing - метод представлен A. Bornik и др. в [9].
Основной алгоритм - для каждого полигона модели строиться кваддерево с использованием всех фотографий объекта, затем из этого дерева строиться текстура с необходимым разрешением. Корень дерева представляет всё текстурное пространство, корень имеет четырех сыновей, которые, в свою очередь, тоже являются кваддеревьями. Каждое поддерево определяет четверть текстурного пространства корня. Дерево строиться пока имеются необработанные входные данные, то есть нижние уровни дерева определяют более высокое разрешение текстуры. Вставка узла происходит по рекурсивному алгоритму 1. Причем алгоритм применяться ко всем узлам дерева.
Для более точной передачи цвета и деталей используется модификации алгоритма. Например, для коррекции оптических искажений используется специальная матрица для проекции, учитывающая параметры объектива. Так же используется усреднение цветов, те при вычислении цвета для текущего узла используются данные отцовских узлов.
При текстурировании реальных объектов часто появляется проблема перекрываемых областей, т.е. когда часть поверхности не видима с какой-либо точки зрения. Этому могут послужить три основных причины: самоперекрывание частей объекта, перекрывание другими моделируемыми объектами и перекрывание немоделируемыми объектами. Для борьбы со всеми тремя видами перекрываний используются модификации алгоритма 1. Для первых двух видов используется простая проверка видимости (как в OpenGL). Для борьбы с последним видом используется усреднение цветов для каждого листа дерева. Обработка перекрываний не моделируемыми объектами выгодно отличает данный метод от вышеописанного texture weaving.
Подводя черту нужно заметить, что texture weaving лучше подходит для моделирования объектов в специальных условиях, когда сам процесс съемки исключает перекрывание объекта не моделируемыми объектами. Он проще в реализации и требует меньше ресурсов, может стать неплохим дополнением для простого 3D-сканнера или системы восстановления геометрии отдельных объектов по фотографиям. В то же время image-based modeling лучше подходит для текстурирования комплексных сцен (несколько моделируемых объектов), а так же для текстурирования объектов из реальной жизни, т.е. когда невозможно, например, убрать дерево перед домом, текстуру которого необходимо получить.
Отдельно стоит упомянуть метод предварительного восстановления текстуры под названием
Ray-casting (аналог ray-tracing) - метод дающий потенциально высококачественные результаты, но очень ресурсоемкий, так как сводиться к простому перебору.
Основной идеей является "пропускание" луча через каждую точку каждой фотографии из набора. Если данный луч пересекает некоторую точку модели, то в буфер данной точки модели попадает информация о цвете точки фотографии, из которой выпущен луч и некоторый весовой коэффициент (который определяется из соображений, насколько хорошо "видна" данная точка модели на данной фотографии). Затем, после обхода всех фотографий, для каждой точки модели вычисляется цвет с использованием информации из буфера данной точки.
Подход не получил на данный момент широкого распространения - ввиду его ресурсоёмкости никаких сколько-нибудь серьезных его исследований не проводилось, но тем не менее элементы ray-casting используются для определения видимости в [10] и ряде других работ. Если его оптимизировать (например не просчитывать точки, заведомо не принадлежащие объекту) и перенести на современный графический процессор, то можно получить более качественные результаты, чем в подходе 2, так как мы просчитываем все возможные варианты для данного дискретного представления, в отличие вышеописанных методов, где единицей расчета служит часть поверхности объекта.
Заключение.
В настоящее время всё большее распространение получают методы восстановления текстур отдельно от геометрии, так как данные методы не накладывают ограничений на способ восстановления геометрии. Как следствие они позволяют текстурировать архитектурные объекты, или объекты из реального мира (т.е. не требуют специальных условия для получения входных данных). Отдельно стоит упомянуть ray-casting, который, как уже было сказано, при реализации на базе современных GPU имеет весьма неплохие перспективы. Однако методы восстановления текстуры непосредственно в процессе визуализации не уходят в прошлое, т.к. они востребованы в системах типа электронных путеводителей и виртуальных каталогов. Это объясняется простотой (с точки зрения пользователя) построения текстурированной модели и невысокая ресурсоемкость.
Ссылки.
P.E. Debevec, Y. Yu, and G. D. Borshukov.
Efficient view-dependent image-based rendering with projective texture-mapping.
Eurographics Rendering Workshop, pages 105-116,1998.
P. E. Debevec, C. J. Taylor, and J. Malik.
Modeling and rendering architecture from photographs:
A hybrid geometry- and image-based approach.
In Computer Graphics (SIGGRAPH '96 Proceedings), volume 30,
pages 11-20, New Orleans, Lou-siana, 1996.
K. J. Dana, B. van Ginneken, S. K. Nayar, and J. J. Koenderink.
Reflectance and texture of real-world surfaces. ACM Transactions on Graphics,
18(1): 1- 34, January 1999.
P. Suen and G. Healey. The analysis and reconstruction of real-world textures in three dimensions.
IEEE Transactions of Pattern Analysis and Machine Intelligence, 22(5):491-503, May 2000.
M. Irani, P. Anandan, and S. Hsu. Mosaic based representations of video sequences and their
applications. In IEEE International Conference on Computer Vision, pages 605-611, Boston, MA, 1995.
IEEE Computer Society Press.
R. Szeliski. Video mosaics for virtual environments.
IEEE Computer Graphics and Applications, 16(3):22-30, 1996.
R. Szeliski and H. Shum. Creating full view panoramic mosaics and environment maps.
In Computer Graphics (SIGGRAPH '97 Proceedings), pages 251-258, Los Angeles, California, 1997.
F. Bernardini and H. Rushmeier IBM Thomas J. Watson Research.
The 3D Model Acquisition Pipeline. In Computer Graphics Volume 21 (2002),
number 2 pp. 149-172
Bornik A., Karner K., Bauer J., Leberl F.,
Mayer H. High-quality texture reconstruction from multiple views.
The Journal of Visualization and Computer Animation 2001; 12: 263-276
M. Callieri, P. Cignoni, and R. Scopigno.
Reconstructing Textured Meshes from Multiple Range RGB Maps, 7th Int.l Fall Workshop on Vision,
Modeling, and Visualization 2002, Erlangen (D), Nov. 20 - 22, 2002
Комментарии
Отправить комментарий