40
Высокопроизводительные методы геометрического моделирования Михаил Бессмельцев к.ф.-м.н. Ольга Нечаева Лекция 2. Упрощение сеток

Высокопроизводительные методы геометрического моделирования

Embed Size (px)

DESCRIPTION

Лекция 2 . Упрощение сеток. Высокопроизводительные методы геометрического моделирования. Михаил Бессмельцев к.ф.-м.н . Ольга Нечаева. Simplification Упрощение. 300. 12,000. 2,000. error. Зачем упрощать сетки?. Уменьшать количество информации для передачи и хранения сеток - PowerPoint PPT Presentation

Citation preview

Page 1: Высокопроизводительные методы геометрического моделирования

Высокопроизводительные методы геометрического моделирования

Михаил Бессмельцев. .- . . кф мн Ольга Нечаева

2. Лекция Упрощение сеток

Page 2: Высокопроизводительные методы геометрического моделирования

SimplificationУпрощение

12,000 2,000 300

Page 3: Высокопроизводительные методы геометрического моделирования

?Зачем упрощать сетки Уменьшать количество информации

для передачи и хранения сеток Ускорять рендеринг (отрисовку) Контролировать разрешение модели

erro

r

Page 4: Высокопроизводительные методы геометрического моделирования

Level of Detail (LOD) Уровень Детализации

Подробная сетка для близких объектов Грубая для далёких

Page 5: Высокопроизводительные методы геометрического моделирования

Progressive Meshes Прогрессивные сетки

Упрощать за один шаг Приоритет: качество

Упрощать постепенно (Прогрессивные сетки) Приоритет: скорость

Mn 13,133 ver

Mc1

503 ver8903 ver

Mc2 Mc3

10,103 ver

Mn

13,133 ver

M0

503 ver 489 ver8903 ver10,103 ver

Mc1 Mc2 Mc3

Page 6: Высокопроизводительные методы геометрического моделирования

Progressive Meshes Прогрессивные сетки

Hoppe, 1996

Подробная сетка - это самая грубая сетка + история, как с ней такое сделали (вся последовательность операций упрощения)

Page 7: Высокопроизводительные методы геометрического моделирования

( , )Качество сеток например углы

Mn (12,946 faces)

192 faces 1,070 faces PM (200 faces) PM (1,000 faces)

Page 8: Высокопроизводительные методы геометрического моделирования

Методология

Page 9: Высокопроизводительные методы геометрического моделирования

Методология Упрощение – последовательность локальных

операций Каждая операция затрагивает только несколько соседних

вершин Каждая операция влияет на ошибку аппроксимации Каждый раз находим и применяем операцию, которая

влечет к наименьшей ошибке

Page 10: Высокопроизводительные методы геометрического моделирования

: Операции удаление вершины Удаление вершины

v = v-1; f = f -2;

Новое множество вершин – подмножество старого

Page 11: Высокопроизводительные методы геометрического моделирования

Operations: Edge Collapse: Операции Коллапс ребра

Коллапс ребра (Edge collapse) v = v -1; f = f - 2;

Вершины двигаются!

Page 12: Высокопроизводительные методы геометрического моделирования

Operations: Pair contractionОперации: Слияние пары

Вершины двигаются!

Page 13: Высокопроизводительные методы геометрического моделирования

Контроль ошибки Локальная ошибка

Быстро считать Нужно мало памяти Можно накапливать

Глобальная ошибка: сравнить что получилось с тем, что было Медленно Зато точнее контролируем ошибку Можно использовать в качестве условия останова Необходимо помнить начальную сетку

Page 14: Высокопроизводительные методы геометрического моделирования

Измерение ошибки упрощения Меры

Расстояние до плоскости Кривизна

Обычно аппроксимируется Средняя плоскость Дискретная кривизна

Page 15: Высокопроизводительные методы геометрического моделирования

Основной алгоритм упрощения Repeat

Найти элемент с минимальной ошибкой Выполнить операцию (удаление или слияние) Пересчитать ошибку

Пока не достигнут нужный размер / качество сетки

Page 16: Высокопроизводительные методы геометрического моделирования

Детали реализации Структура данных сетки

Такая, чтобы было просто обходить соседей

Очередь с приоритетами (например, куча) Быстрый доступ к элементу с минимальной ошибкой

В случае кучи: Θ(1) для нахождения максимума O(log n) для извлечения максимума

Быстрое добавление Для кучи: O(log n)

Page 17: Высокопроизводительные методы геометрического моделирования

Алгоритм удаления вершин

Page 18: Высокопроизводительные методы геометрического моделирования

Алгоритм удаления вершин Операция упрощения: удаление вершины Мера ошибки: расстояние до плоскости Можно предохранять особенности сетки

Page 19: Высокопроизводительные методы геометрического моделирования

Сохранение особенностей модели Оригинал (1972 вершины):

Page 20: Высокопроизводительные методы геометрического моделирования

Сохранение особенностей модели Результат упрощения (200 вершин)

Page 21: Высокопроизводительные методы геометрического моделирования

Сохранение особенностей модели Результат умного упрощение (те же 200 вершин)

Page 22: Высокопроизводительные методы геометрического моделирования

Топологически корректный алгоритм упрощения

Schroeder et al. 1992

Page 23: Высокопроизводительные методы геометрического моделирования

Алгоритм удаления вершин Исследовать локальную топологию/геометрию Посмотреть, какие вершины можно удалять Повторять

Удалить вершину Триангулировать образовавшуюся дырку Обновить ошибку нужных вершин

Пока не выполнено условие упрощения (например, на размер сетки)

Page 24: Высокопроизводительные методы геометрического моделирования

Локальная топология и геометрия

ПростаяПростая

ГраничнаяГраничная

СложнаяСложная

ВнутренняяВнутренняя

УгловаяУгловая

Page 25: Высокопроизводительные методы геометрического моделирования

Локальная топология и геометрия Простые вершины можно еще

классифицировать: if (двугранный угол между соседними

треугольниками > FeatureAngle), then их общее ребро – характерное ребро ВнутренняяВнутренняя

Если вершина принадлежит двум характерным рёбрам, то это внутренняя вершина.

Если трём или больше, то это угловая вершина.

УгловаяУгловая

Page 26: Высокопроизводительные методы геометрического моделирования

Критерий удаления Пользователь задаёт Emax

Простая вершина Расстояние от неё до средней плоскости < Emax

Граничная вершина Расстояние от вершины до нового граничного ребра <

Emax

Расстояние

Расстояние

Page 27: Высокопроизводительные методы геометрического моделирования

Триангулирование дырки После удаления вершины образуется неплоская дырка

(непланарный цикл) 2D алгоритмы в общем случае не сработают Рекурсивно разбивать дырку Следить за качеством получаемой триангуляции

Триангуляция может не сработать Тогда не удаляем вершину

Page 28: Высокопроизводительные методы геометрического моделирования

Плюсы иминусы Эффективный Легко запрограммировать и использовать

Немного параметров для настройки Неплохая аппроксимация Работает на очень больших сетках - ( Выбирает из начального мн ва вершин не

)двигает

Ошибка не ограничена Т.к. ошибка меряется только локально

Page 29: Высокопроизводительные методы геометрического моделирования

Алгоритм коллапса рёбер

Page 30: Высокопроизводительные методы геометрического моделирования

Где и как используются ?структуры данных для сеток

Операция упрощения: коллапс ребра Мера ошибки: расстояние, псевдо-

глобальное Также упрощает топологию

Page 31: Высокопроизводительные методы геометрического моделирования

: Мера расстояний Квадрика Найти точку, ближайшую к

множеству плоскостей

Сумма расстояний до множества плоскостей – это квадратичная форма – а значит, у нее есть минимум

Page 32: Высокопроизводительные методы геометрического моделирования

: Мера расстояний Квадрика Плоскость

Ax + By + Cz + D = 0, где A2 + B2 + C2 = 1 p = [A, B, C, D], v = [x, y, z, 1], v pT = 0

Выражается в виде квадратичной формы p(v) = (v pT)2 = (v pT) (p vT) = v (pTp) vT = v

KP vT

2

2

2

2

DCDBDAD

CDCBCAC

BDBCBAB

ADACABA

KP =

Page 33: Высокопроизводительные методы геометрического моделирования

Расстояние до множестваплоскостей

Tv

T

planes(v)pp

planes(v)p

Tp

planes(v)pp

vQv

v)K( v

)vK (v

)v()v(

После того, как v1 и v2 сливаются в v,

Qv Qv1+Qv2

Псевдо-глобальное Первую сетку/поверхность

храним всегда

Page 34: Высокопроизводительные методы геометрического моделирования

Слияние двух вершин Цель: Пусть дано ребро e = (v1,v2), найти вершину

v = (x,y,z,1) «слияния», которая минимизирует функцию(v):

/x = /y = /z = 0 Для этого нужно решить следующую СЛУ:

Если решения нет, то выбираем середину

1

0

0

0

v

1000

qqqq

qqqq

qqqq

34333231

24232221

14131211

Page 35: Высокопроизводительные методы геометрического моделирования

Слияние двух вершин Выбирать ребра из сетки Или вершины, которые находятся близко – с

заданным порогом

T

Page 36: Высокопроизводительные методы геометрического моделирования

Алгоритм Посчитать QV для всех вершин сетки Найти все нужные пары вершин Для каждой нужной пары (v1,v2) вычислить

оптимальную вершину для слияния и её ошибку (v) Разместить все пары в очереди с приоритетами (в

соответствии с (v)) Пока не выполняется условие останова

Склеить ребро (v1,v2) с наименьшей ошибкой в v Обновить очередь

Page 37: Высокопроизводительные методы геометрического моделирования

ПримерDolphin (Flipper)

Original - 12,337 faces

2,000 faces300 faces (142 vertices)

Page 38: Высокопроизводительные методы геометрического моделирования

Тоже пример Упрощение сеток

12,000 2,000 300

Page 39: Высокопроизводительные методы геометрического моделирования

Плюсы иминусы Ошибка ограничена Можно упрощать топологию Получаются сетки высокого качества Довольно эффективный

Проблемы с границами Добавляет вершины, которых не было в оригинальной

сетке

Page 40: Высокопроизводительные методы геометрического моделирования

?Вопросы Вся информация по спецкурсу + презентации +

текущие баллы выкладываются на http://aitricks.com/ru/research/course