81 ПРЕОБРАЗОВАНИЕ ПОЛИГОНАЛЬНЫХ И ВОКСЕЛЬНЫХ МОДЕЛЕЙ В ФУНКЦИОНАЛЬНОЕ ОПИСАНИЕ С.И. Вяткин1, Б.С. Долговесов2 1,2 Институт автоматики и электрометрии СО РАН, Россия, 630090 Новосибирск пр. Ак. Коптюга 1, тел: (383)333-36-30 [email protected], [email protected] Рассматривается метод автоматического преобразования полигональных и воксельных моделей в функциональные объекты. Функциональные объекты строятся из свободных форм с аналитическими функциями возмущения, благодаря чему достигается высокий коэффициент геометрического сжатия высокореалистичных трехмерных моделей. Введение В настоящее время для генерации изображений в реальном времени используются алгоритмы растрирования на плоскости и воксельно-базируемые алгоритмы. Основным достоинством первого подхода является низкая вычислительная сложность алгоритмов рендеринга. Для генерации изображения не требуется высоких вычислительных мощностей. К недостаткам можно отнести, в первую очередь, огромное количество примитивов (треугольников). Чтобы получить полноценный трехмерный объект со сложной поверхностью, необходимо иметь огромное число треугольников (сотни миллионов, если визуализировать геометрические модели со множественными разрешениями-multiresolution geometric models), что по числу данных приближается к воксельным моделям. С целью геометрического сжатия и качественного отображения таких сложных объектов были разработаны патчи произвольных форм [1, 2], а также свободные формы на базе квадрик с аналитическими функциями возмущения [2, 3]. В работе [4] была решена задача автоматического преобразования полигональных моделей в функциональные на базе объемных патчей произвольных форм с аналитическими функциями возмущения. Известна работа [6] в которой решалась задача конверсии для вариационных неявных поверхностей, а также работа [7]. Данная работа посвящена автоматическому преобразованию полигональных и воксельных моделей в функциональное описание на базе свободных форм с аналитическими функциями возмущения. Свободные формы В работе [3] предлагалось описывать сложные геометрические объекты, задавая функцию отклонения (функция второго порядка в неявном виде) от базовой квадрики. Алгебраическим неравенством второй степени (с тремя неизвестными x,y,z) называется всякое неравенство вида: F(x, y, z) = A11x2 + A22y2 + A33z2 + A12xy +A13 xz + A23yz + A14x + A24y + A34z + A44 0, (1) где x, y и z - пространственные переменные. Квадрика определяется с помощью вещественной непрерывной описывающей функции трех переменных (x1, x2, x3) в виде F(X) 0. Рассматриваются квадрики как замкнутые подмножества Эвклидова 82 пространства Eⁿ, определяемые описывающей функцией F(X) 0, где Fнепрерывная вещественная функция и X= (x1,x2,x3) – задаваемая координатными переменными точка в Eⁿ. Здесь F(X) 0 задает точки внутри квадрики, F(X) = 0 – точки на границе и F(X) 0 - точки, лежащие снаружи и не принадлежащие квадрике. Квадрика с возмущением (свободная форма) это композиция базовой квадрики и возмущения F’(x,y,z) = F(x,y,z) + R(x,y,z), где R(x,y,z) – возмущение. Полученная поверхность будет гладкой (рис. 1), и потребуется небольшое количество функций возмущения для создания сложных форм поверхностей. Предложенный способ описания объектов трехмерных сцен базовыми поверхностями и функциями возмущения имеет компактное описание, что позволяет существенно уменьшить объем хранимых и передаваемых данных, а также улучшить качество изображений. кривизны. Алгоритм декомпозирует объект на различные регионы с точными взаимными границами и последовательно выделяет в порядке иерархии: плоские зоны с границами; зоны с постоянным характером кривизны (цилиндр, сфера и др.); разворачиваемые поверхности с нулевой Гауссовой кривизной; поверхности свободной формы (рис. 3, 4) и т.д. Поверхности свободной формы сегментировать не надо. Рис. 2. Сегментирование объекта Рис. 3. Исходная полигональная модель (16512 вершин, 32768 полигонов, общий объем данных-642 кб) Рис. 1. Свободная форма на основе квадрики с тремя аналитическими функциями возмущения Сегментация моделей С целью корректного преобразования и максимально компактного функционального описания, исходную полигональную модель, состоящую из объединения нескольких свободных форм, необходимо сегментировать (рис. 2). Используется алгоритм сегментации модели, состоящей из полигональных сеток, на отдельные подобласти, основанный на анализе их Рис. 4. Исходная полигональная сетка (показан фрагмент) Вычисление коэффициентов уравнения базовой квадрики Значение функции заданной в произвольной точке P[ x, y, z ] будет: 83 Q( P[ x , y , z ]) qxx x 2 q yy y 2 qzz z 2 qxy xy qxz xz q yz yz qx x q y y qz z q (3) Т.к. значение Q на поверхности равно нулю, то для нахождения коэффициентов квадрики по девяти P1[ x1 , y1 , z1 ] P9 [ x9 , y9 , z9 ] точкам получаем систему линейных уравнений. Q ( P1 ) 0 Q ( P2 ) 0 Q ( Pi ) 0 Q ( P9 ) 0 (4) Решением системы уравнений со свободным членом q (положим его равным -K) при заданных P1 [ x1 , y1 , z1 ] P9 [ x9 , y9 , z9 ] будут девять искомых коэффициентов qxx ,q yy ,qzz ,qxy ,qxz ,q yz ,qx ,q y ,qz . Далее коэффициенты этой квадрики будут использоваться при преобразовании в функциональную модель. Вокселизация полигональных моделей Прежде чем преобразовывать полигональные сегментированные модели в функциональные, необходимо их вокселизировать подобно тому как это было описано в [5]. Вокселизация это процесс преобразования геометрических объектов из их непрерывного геометрического представления в 3D массив элементов объема (вокселы), которые наилучшим образом аппроксимируют непрерывный объект. Преобразование моделей в функциональное описание Данное преобразование состоит из следующих основных задач: определение одномерных функций на концах отрезков (рис. 5), обратный обход четверичного дерева деления объектного пространства [3], поиск коэффициентов функций, минимизация функций. Можно делать обратный обход сразу восьмеричного дерева, но тогда вычислений будет больше. Главная идея заключается в следующем. Если с помощью рекурсивного деления объектного пространства [3] можно визуализировать функционально-заданные объекты (вычислять точки поверхности, нормали в этих точках, освещенность и т.д.), то можно решить и обратную задачу: по заданным точкам и нормалям найти функции, описывающие данный объект. В работе [3] описан алгоритм рекурсивного деления объектного пространства, осуществляющий эффективный поиск элементов объема - вокселей, участвующих в формировании изображения. То есть, осуществляется обход объектного пространства по четверичному дереву, листья которого являются корнями двоичных деревьев. После четверичного деления в каждой точке поверхности от уравнений поверхностей остаются уравнения линий второго порядка. В зависимости от коэффициентов такие линии изображены относительно оси Z на рисунке 5. На входе - десять коэффициентов квадрики (1), в точке X, Y – останется после деления только три: a, b и c (5). az²+bz²+c=0, (5) где a=A33, b=A34, c=A44 d=b²-4ac (6) Рис. 5. Линии второго порядка после четверичного деления объектного пространства Далее при визуализации определяются точки пересечения этих линий с осью Z. В описываемом преобразовании стоит прямопротивоположная задача. После того, как были вычислены все отрезки, и, соответственно, все точки поверхности 84 после вокселизации, а также нормали, необходимо найти коэффициенты уравнений линий второго порядка (5) и коэффициенты квадрики самого низкого уровня четверичного дерева. Затем, имея модифицированные коэффициенты квадрики, необходимо получить исходные. Для решения этой задачи было решено использовать обратный обход четверичного дерева деления объектного пространства, предварительно найдя функцию (5) и нормаль для каждого воксела. Рис. 6. Функционально-заданный объект (15 функций второго порядка) То есть, необходимо обойти четверичное дерево в обратном порядке - от листьев к корню. Для этого решаются системы линейных уравнений на каждом уровне рекурсии, определяются одинаковые коэффициенты уравнений (с учетом установленного порога точности приближения) и минимизируется количество функций на каждом уровне, только после обработки всех уравнений данного уровня происходит всплытие на следующий более верхний уровень, и так процесс повторяется до самого корня четверичного дерева. В результате получается необходимый минимум функций, описывающих данный объект в формате описания функционально-заданных объектов на базе квадрик с аналитическими функциями возмущения. Заключение В данной работе представлен метод автоматического преобразования полигональных и воксельных моделей в функциональные на базе квадрик с аналитическими функциями возмущения (свободные формы). В методе на базе свободных форм преобразование происходит с помощью обратного обхода дерева деления объектного пространства, что является обратной задачей визуализации. Таким образом, прямое рекурсивное деление объектного пространства используется для визуализации функциональных объектов, а обратное для поиска функций, описывающих объект. Для анализа отклонений (отклонение вершин и нормалей) был разработан анализатор критериев отклонений. Анализ степени приближения полученной сетки к функционально заданной поверхности осуществляется по двум метрикам: отклонение вершин треугольной сетки от поверхности функционального объекта; отклонение нормалей к вершинам треугольной сетки от значений нормалей в точках функциональной поверхности. С помощью данного метода возможно сжатие без потерь. Список литературы 1. Вяткин С. И., Долговесов Б. С. Поверхности и патчи свободных форм на основе скалярных и аналитических функций возмущения // Труды 12й Междунар. конф. "Графикон-2002". Нижний Новгород, 2002. С. 147-152. 2. Вяткин С.И. Моделирование сложных поверхностей с применением функций возмущения // Автометрия. 2007. N3. С. 40. 3. Вяткин С.И., Долговесов Б.С., Есин А.В. и др. Геометрическое моделирование и визуализация функционально заданных объектов // Автометрия. 1999. N6. С. 84. 4. Вяткин С.И., Долговесов Б.С., Рухлинский А.В. Создание сложных поверхностей на базе функций возмущения из полигональных сеток // Труды 16й Междунар. конф. по компьютерной графике и ее приложениям "Графикон-2006" (Новосибирск, Россия, 1-5 июля 2006). Новосибирск, ИВММГ СО РАН, 2006. 5. Вяткин С.И., Долговесов Б.С. Создание баз данных на основе скалярных функций возмущения // Труды 16-й Междунар. конф. по компьютерной графике и ее приложениям "Графикон-2006" (Новосибирск, Россия, 1-5 июля 2006). Новосибирск, ИВММГ СО РАН, 2006. 6. Gary Yngve, Grey Turk. "Robust Creation of Implicit Surfaces from Polygonal Meshes" // IEEE 85 Transactions on Visualization and Computer Graphics. Vol.8., No.4., October-December 2002. 7. Ohtake Y., Belyaev A., Alexa M., Seidel H.-P. "Multi-level partition of unity implicits", ACM Transactions on Graphics (SIGGRAPH 03 Proceedings), vol. 22, No. 3, 2003, pp. 463-470.