stringtranslate.com

Обработка геометрии

Обработка полигональной сетки Марио Ботч и др. представляет собой учебник по теме «Обработка геометрии». [1]

Обработка геометрии — это область исследований, в которой используются концепции прикладной математики , информатики и инженерии для разработки эффективных алгоритмов получения, реконструкции , анализа , манипулирования, моделирования и передачи сложных 3D-моделей. Как следует из названия, многие концепции, структуры данных и алгоритмы напрямую аналогичны обработке сигналов и обработке изображений . Например, там, где сглаживание изображения может свертывать сигнал интенсивности с ядром размытия, сформированным с помощью оператора Лапласа , геометрическое сглаживание может быть достигнуто путем свертки геометрии поверхности с ядром размытия, сформированным с помощью оператора Лапласа-Бельтрами .

Приложения алгоритмов обработки геометрии уже охватывают широкий спектр областей: от мультимедиа , развлечений и классического компьютерного проектирования до биомедицинских вычислений, реверс-инжиниринга и научных вычислений . [1]

Обработка геометрии — распространенная тема исследований на SIGGRAPH , главной научной конференции по компьютерной графике , а также основная тема ежегодного симпозиума по обработке геометрии .

Обработка геометрии как жизненный цикл

Сетка кактуса, показывающая гауссову кривизну в каждой вершине с использованием метода угловых дефектов.

Обработка геометрии предполагает работу с формой , обычно в 2D или 3D, хотя форма может существовать в пространстве произвольных размеров. Обработка формы включает три этапа, которые называются ее жизненным циклом. При «рождении» форма может быть создана одним из трех методов: моделью , математическим представлением или сканированием . После рождения формы ее можно анализировать и редактировать несколько раз в цикле. Обычно это включает в себя получение различных измерений, таких как расстояния между точками формы, гладкость формы или ее эйлерова характеристика . Редактирование может включать шумоподавление, деформацию или выполнение жестких преобразований . На заключительном этапе «жизни» формы она расходуется. Это может означать, что он используется зрителем, например, как визуализируемый ресурс в игре или фильме. Конец жизни формы также может быть определен решением относительно формы, например, удовлетворяет ли она некоторым критериям. Или его даже можно изготовить в реальном мире с помощью такого метода, как 3D-печать или лазерная резка.

Дискретное представление формы

Как и любая другая форма, формы, используемые при обработке геометрии, имеют свойства, относящиеся к их геометрии и топологии . Геометрия фигуры касается положения точек фигуры в пространстве , касательных , нормалей и кривизны . Сюда также входит измерение, в котором находится фигура (например, или ). Топология фигуры — это набор свойств, которые не изменяются даже после применения к фигуре плавных преобразований . Это касается таких размеров, как количество отверстий и границ , а также ориентируемости формы. Одним из примеров неориентируемой формы является лента Мёбиуса .

В компьютерах все должно быть дискретизировано. Формы при обработке геометрии обычно представляются в виде треугольных сеток , которые можно рассматривать как график . Каждый узел графа представляет собой вершину (обычно в ), у которой есть позиция. Это кодирует геометрию формы. Направленные ребра соединяют эти вершины в треугольники, которые по правилу правой руки имеют направление, называемое нормалью. Каждый треугольник образует грань сетки. Они носят комбинаторный характер и кодируют топологию фигуры. Помимо треугольников, для представления фигуры также можно использовать более общий класс полигональных сеток . Более сложные представления, такие как прогрессивные сетки, кодируют грубое представление вместе с последовательностью преобразований, которые создают точное представление формы или формы с высоким разрешением после ее применения. Эти сетки полезны в различных приложениях, включая геоморфизацию, прогрессивную передачу, сжатие сетки и выборочное уточнение. [2]

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

Свойства фигуры

Эйлерова характеристика

Одним из особенно важных свойств трехмерной формы является ее эйлерова характеристика , которую альтернативно можно определить через ее род . Формула для этого в непрерывном смысле: , где – количество связных компонентов, – количество отверстий (как в бублике, см. тор ), – количество связных компонентов границы поверхности. Конкретным примером этого является сетка пары брюк . Имеется один связный компонент, 0 отверстий и 3 связных компонента границы (талия и два отверстия для ног). Итак, в этом случае эйлерова характеристика равна -1. Чтобы перенести это в дискретный мир, эйлерова характеристика сетки вычисляется в терминах ее вершин, ребер и граней. .

На этом изображении показана сетка пары брюк с эйлеровой характеристикой -1. Это объясняется уравнением для расчета характеристики: 2c – 2h – b. Сетка имеет 1 связный компонент, 0 топологических отверстий и 3 границы (отверстие в талии и каждое отверстие для ног): 2 – 0 – 3 = -1.

Реконструкция поверхности

Реконструкция Пуассона от точек поверхности до сетки

Треугольная сетка строится из облака точек . Иногда фигуры инициализируются только как «облака точек» — набор точек, выбранных с поверхности фигуры. Часто эти облака точек необходимо преобразовать в сетки.

В зависимости от того, как форма инициализируется или «рождается», форма может существовать только как туманность из выбранных точек, которые представляют ее поверхность в пространстве. Чтобы преобразовать точки поверхности в сетку, можно использовать стратегию реконструкции Пуассона [3] . Этот метод утверждает, что индикаторная функция — функция, которая определяет, какие точки в пространстве принадлежат поверхности фигуры, — на самом деле может быть вычислена на основе точек выборки. Ключевая идея заключается в том, что градиент индикаторной функции равен 0 везде, кроме точек выборки, где он равен внутренней нормали к поверхности. Более формально, предположим, что набор выбранных точек с поверхности обозначается , каждая точка в пространстве - , а соответствующая нормаль в этой точке - . Тогда градиент индикаторной функции определяется как:

Тогда задача реконструкции становится вариационной задачей. Чтобы найти индикаторную функцию поверхности, необходимо найти такую ​​минимизируемую функцию, где – векторное поле, определяемое образцами. В качестве вариационной задачи можно рассматривать минимизатор как решение уравнения Пуассона . [3] После получения хорошего приближения и значения , при котором точки с лежат на восстанавливаемой поверхности, алгоритм марширующих кубов можно использовать для построения треугольной сетки из функции , которую затем можно применять в последующей компьютерной графике Приложения.

Постановка на учет

Одна из распространенных проблем, возникающих при обработке геометрии, заключается в том, как объединить несколько изображений одного объекта, снятых под разными углами или положениями. Эта проблема известна как регистрация . При регистрации мы хотим найти оптимальное жесткое преобразование , которое выровняет поверхность с поверхностью . Более формально, если — проекция точки x с поверхности на поверхность , мы хотим найти оптимальную матрицу вращения и вектор перемещения , которые минимизируют следующую целевую функцию:

Хотя вращения в целом нелинейны, небольшие вращения можно линеаризовать как кососимметричные матрицы. Более того, функция расстояния нелинейна, но поддается линейным аппроксимациям, если изменение невелико. Поэтому итеративное решение, такое как итеративная ближайшая точка (ICP), используется для итеративного решения небольших преобразований вместо решения потенциально большого преобразования за один раз. В ICP выбираются n случайных точек выборки и проецируются на . Чтобы равномерно и случайным образом отбирать точки по поверхности треугольной сетки, случайная выборка разбивается на два этапа: равномерная выборка точек внутри треугольника; и треугольники с неравномерной выборкой, так что соответствующая вероятность каждого треугольника пропорциональна площади его поверхности. [4] После этого оптимальное преобразование рассчитывается на основе разницы между каждым из них и его проекцией. На следующей итерации прогнозы рассчитываются на основе результата применения предыдущего преобразования к выборкам. Процесс повторяется до сходимости.

Сглаживание

Когда формы определяются или сканируются, может присутствовать сопутствующий шум либо из-за сигнала, действующего на поверхность, либо из-за фактической геометрии поверхности. Уменьшение шума в первом случае называется шумоподавлением данных , тогда как снижение шума во втором известно как выравнивание поверхности . Задача геометрического сглаживания аналогична уменьшению шума сигнала и, следовательно, использует аналогичные подходы.

Соответствующий лагранжиан, который необходимо минимизировать, получается путем записи соответствия исходному сигналу и гладкости результирующего сигнала, который аппроксимируется величиной градиента с весом :

.

Взятие вариации выдает необходимое условие

.

Дискретизируя это на кусочно-постоянные элементы с нашим сигналом в вершинах, мы получаем

Шумная сфера, итеративно сглаживаемая.

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

Где и являются углами, противоположными краю [5] Матрица масс M как оператор вычисляет локальный интеграл значения функции и часто устанавливается для сетки с m треугольниками следующим образом:

Параметризация

Иногда нам нужно выровнять 3D-поверхность на плоскую плоскость. Этот процесс известен как параметризация . Цель состоит в том, чтобы найти координаты u и v , на которые мы можем отобразить поверхность, чтобы свести к минимуму искажения. Таким образом, параметризацию можно рассматривать как проблему оптимизации. Одним из основных применений параметризации сетки является наложение текстур .

Метод массовых пружин

Tutte Embedding показывает негладкую параметризацию на стороне жука.

Один из способов измерить искажения, возникающие в процессе картографирования, — это измерить, насколько длина ребер 2D-картографии отличается от их длин на исходной 3D-поверхности. Более формально целевую функцию можно записать так:

Где — набор ребер сетки и — набор вершин. Однако оптимизация этой целевой функции приведет к решению, которое сопоставит все вершины с одной вершиной в координатах uv . Заимствуя идею из теории графов, мы применяем Tutte Mapping и ограничиваем граничные вершины сетки единичным кругом или другим выпуклым многоугольником . Это предотвратит схлопывание вершин в одну вершину при применении сопоставления. Неграничные вершины затем размещаются в барицентрической интерполяции своих соседей. Однако Tutte Mapping по-прежнему страдает от серьезных искажений, поскольку пытается сделать длины ребер равными и, следовательно, неправильно учитывает размеры треугольников на фактической поверхностной сетке.

Конформные отображения метода наименьших квадратов

Сравнение параметризации Tutte Embedding и Least-Squares-Conformal-Mapping. Обратите внимание, насколько плавна параметризация LSCM на стороне жука.

Другой способ измерения искажения — рассмотреть изменения координатных функций u и v . Шатание и искажение, наблюдаемые в методах массовых пружин, обусловлены сильными изменениями координатных функций u и v . При таком подходе целевой функцией становится энергия Дирихле на u и v:

Есть еще несколько вещей, которые следует учитывать. Мы хотели бы минимизировать угловое искажение, чтобы сохранить ортогональность . Это значит, что нам бы хотелось . Кроме того, нам также хотелось бы, чтобы отображение имело регионы пропорционально такого же размера, что и оригинал. Это приводит к установке якобиана координатных функций u и v равным 1.

Объединив эти требования, мы можем увеличить энергию Дирихле так, чтобы наша целевая функция стала следующей: [6] [7]

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

Деформация

Пример максимально жесткой деформации.

Деформация связана с преобразованием некоторой формы покоя в новую форму. Обычно эти преобразования непрерывны и не меняют топологию фигуры. Современные методы деформации формы на основе сетки удовлетворяют ограничениям пользователя на деформацию в маркерах (выбранных вершинах или областях сетки) и плавно распространяют эти деформации маркеров на остальную часть формы, не удаляя и не искажая детали. Некоторые распространенные формы интерактивных деформаций основаны на точках, скелетах и ​​клетках. [8] При точечной деформации пользователь может применять преобразования к небольшому набору точек, называемых маркерами формы. Деформация на основе скелета определяет скелет формы, который позволяет пользователю перемещать кости и вращать суставы. Деформация на основе клетки требует, чтобы клетка была нарисована вокруг всей фигуры или ее части, чтобы, когда пользователь манипулирует точками на клетке, объем, который она включает, изменяется соответствующим образом.

Точечная деформация

Ручки обеспечивают редкий набор ограничений для деформации: когда пользователь перемещает одну точку, остальные должны оставаться на месте.

Поверхность покоя , погруженную в, можно описать отображением , где – двумерная параметрическая область. То же самое можно сделать и с другим отображением преобразованной поверхности . В идеале преобразованная форма добавляет к оригиналу как можно меньше искажений. Один из способов смоделировать это искажение — использовать смещения с энергией, основанной на лапласиане. [9] Применение оператора Лапласа к этим отображениям позволяет нам измерить, как изменяется положение точки относительно ее окрестности, что сохраняет ручки гладкими. Таким образом, энергию, которую мы хотели бы минимизировать, можно записать как:

.

Хотя этот метод является трансляционно-инвариантным, он не может учитывать вращения. Схема деформации «как можно жестче» [10] применяет жесткое преобразование к каждой ручке i, где – матрица вращения, а – вектор перемещения. К сожалению, заранее узнать повороты невозможно, поэтому вместо этого мы выбираем «лучшее» вращение, которое минимизирует смещения. Однако для достижения локальной инвариантности вращения требуется функция , которая выводит наилучшее вращение для каждой точки на поверхности. Таким образом, результирующая энергия должна быть оптимизирована по обоим параметрам :

Обратите внимание, что вектор перевода не присутствует в конечной целевой функции, поскольку переводы имеют постоянный градиент.

Сегментация внутри и снаружи

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

В простейшем случае форма замкнутая. В этом случае, чтобы определить, находится ли точка внутри или снаружи поверхности, мы можем направить луч в любом направлении от точки запроса и подсчитать, сколько раз он пройдет через поверхность. Если он находился снаружи , то луч должен либо не пройти (в этом случае ), либо каждый раз, когда он входит, он должен пройти дважды, поскольку S ограничено, поэтому любой луч, входящий в него, должен выйти. Так что если снаружи, то четно. Аналогично, если находится внутри, та же логика применима и к предыдущему случаю, но луч должен пересечь еще один раз при первом выходе из него . Так:

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

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

Наивная попытка решить эту проблему состоит в том, чтобы пустить множество лучей в случайных направлениях и классифицировать их как находящиеся внутри тогда и только тогда, когда большинство лучей пересекались нечетное число раз. Чтобы выразить это количественно, скажем, мы излучаем лучи . Мы связываем число , которое представляет собой среднее значение каждого луча. Поэтому:

В пределе съемки большого количества лучей этот метод обрабатывает открытые сетки, однако для достижения точности требуется слишком много лучей, чтобы этот метод был идеальным в вычислительном отношении. Вместо этого более надежным подходом является обобщенное число обмотки. [11] Вдохновленный двумерным числом витков , этот подход использует телесный угол каждого треугольника в сетке, чтобы определить, находится ли он внутри или снаружи. Значение Обобщенного числа обмотки при , пропорционально сумме вклада телесного угла от каждого треугольника в сетке:

Для замкнутой сетки эквивалентно характеристической функции объема, представленной . Поэтому мы говорим:

Поскольку это гармоническая функция , она плавно деградирует, а это означает, что сегментация внутри и снаружи не сильно изменится, если мы проделаем дыры в замкнутой сетке. По этой причине Обобщенное Число Обмоток надежно обрабатывает открытые сетки. Граница между внутренним и внешним плавно проходит через отверстия в сетке. Фактически, в пределе Обобщенное Число Обмоток эквивалентно методу распределения лучей, поскольку количество лучей стремится к бесконечности.

Приложения

Смотрите также

Рекомендации

  1. ^ Аб Ботч, Марио; Коббельт, Лейф; Поли, Марк; Альье, Пьер (2010). Обработка полигональной сетки . ЦРК Пресс . ISBN 9781568814261.
  2. ^ Хьюг Хоппе. «Прогрессивные сетки» (PDF) .
  3. ^ ab «Реконструкция поверхности Пуассона». hhoppe.com . Проверено 26 января 2017 г.
  4. ^ Шимон Русинкевич, Марк Левой. «Эффективные варианты алгоритма ICP» (PDF) .
  5. ^ "Крис Трэли: Лапласовы сетки". www.ctralie.com . Проверено 16 марта 2017 г.
  6. ^ Дебрен, Матье (2002). «Внутренняя параметризация поверхностных сеток» (PDF) . Еврографика . 21 .
  7. ^ Леви, Бруно (2002). «Конформные карты наименьших квадратов для автоматического создания атласов текстур» (PDF) . Транзакции ACM с графикой . 21 (3): 362–371. дои : 10.1145/566654.566590.
  8. ^ Джейкобсон, Алек; Баран, Илья; Попович, Йован; Соркин, Ольга (2011). «Ограниченные бигармонические веса для деформации в реальном времени» (PDF) . Транзакции ACM с графикой . 30 (4): 1. дои : 10.1145/2010324.1964973.
  9. ^ Марк, Алекса (2003). «Дифференциальные координаты для локального морфинга и деформации сетки». Визуальный компьютер . 19 (2): 105–114. дои : 10.1007/s00371-002-0180-0. S2CID  6847571.
  10. ^ Соркин, Ольга ; Алекса, Марк (2007). «Моделирование максимально жесткой поверхности» (PDF) . Материалы симпозиума EUROGRAPHICS/ACM SIGGRAPH по геометрической обработке : 109–116.
  11. ^ Джейкобсон, Алек; Ладислав, Каван; Соркин-Хорнунг, Ольга (2013). «Надежная сегментация внутри и снаружи с использованием обобщенных чисел обмотки» (PDF) . Транзакции ACM с графикой . 32 (4): 1. дои : 10.1145/2461912.2461916. S2CID  207202533.

Внешние ссылки