Графический процесс Геометрическое моделирование

реклама
Графический процесс.
Геометрическое
моделирование
Алексей Викторович Игнатенко
31 марта 2006
1
На лекции


Типовая схема графической обработки:
графический процесс
Геометрическое моделирование


Системы координат
Разновидности моделей и операции над моделями
в различных представлениях
31 марта 2006
2
Графический
процесс
31 марта 2006
3
Графический процесс
Освещение
3D геометрические
модели
Синтез
изображений
(Экранизация)
Изображение
3D анимация
Материалы
31 марта 2006
4
Графический процесс:
Геометрическое моделирование
Ручное
моделирование
3D
сканирование
3D геометрические
модели
Синтез
изображений
(Экранизация)
Фотографии
(CV)
Библиотеки
моделей
31 марта 2006
5
Графический процесс: 3D
сканеры
$25000
$100 000
31 марта 2006
6
Графический процесс:
Трехмерная анимация
Ручное
моделирование
Вычисление
движений
3D анимация
Синтез
изображений
(Экранизация)
Сканирование
движения
(motion
capture)
31 марта 2006
7
Графический процесс:
Материалы
Ручное
моделирование
Отсканированные
изображения
(фотографии)
Текстуры
Материалы
Сгенерированные
изображения
31 марта 2006
Синтез
изображений
(Экранизация)
Модель
отражения/
преломления
8
Графический процесс:
Освещение
Ручное
моделирование
Освещение
Синтез
изображений
(Экранизация)
Фотографии
31 марта 2006
9
Графический процесс: Синтез
изображений (экранизация)
Освещение
3D геометрические
модели
Преобразования,
отсечение,
перспектива
Генерация
изображения
Изображение
3D анимация
Материалы
31 марта 2006
10
Графический процесс:
Хранение и вывод изображений
Аппаратный буфер
кадра
Синтез
изображений
(Экранизация)
Файл
(видео и т.п)
31 марта 2006
11
Геометрическое
моделирование
31 марта 2006
12
Понятие о моделировании

Модель – это абстрактное представление
сущности реального мира


Компьютерное моделирование



Математическое моделирование физических,
химических процессов и др.
Данные о физических объектах не могут быть целиком
введены в компьютер
Необходимо априори ограничить объем хранимой
информации об объекте
Задача моделирования

найти вид модели, наилучшим образом отвечающий
решаемой задаче
31 марта 2006
13
Геометрическое
моделирование

В компьютерной графике используется
геометрическое моделирование


моделирование объектов различной природы с
помощью геометрических типов данных
Выбор модели


максимально использовать возможности
графической системы
учесть задачи обработки и редактирования
модели
31 марта 2006
14
Представления объектов


Представление объекта = модель объекта
Один и тот же объект может иметь несколько
представлений (моделей)

Представления могут быть получены как из исходного
объекта, так и путем преобразования другого представления
объекта
объект 1
объект 2
Модель 1 Модель 2
Модель 3 Модель 4
«Представления объекта 1» «Представления объекта 2»
31 марта 2006
15
Классификация

Рассматриваем сплошные тела

Характеристики модели:






структура данных;
алгоритм построения;
количество памяти, необходимое для хранения модели;
типичные свойства представления (алгоритмы);
область применения моделей в данном представлении.
Критерии классификации представлений



Объем/Поверхность
 Какие свойства трехмерного объекта описывает модель?
Дискретное/Непрерывное
 Содержится ли в модели информация о дополнении дискретных данных до
непрерывных?
Явное/Параметрическое
 Способ получения трехмерных координат точек, принадлежащих модели
31 марта 2006
16
Системы координат
31 марта 2006
17
Воксельное представление

Структура





Равномерная сетка, каждый
элемент которой показывает,
если в нем часть объекта
Ячейка называется воксель
(voxel = volume element)
Каждый воксель принимает
значение 0 или 1
Может также задавать
плотность (0-1)
Способ получения

Дискретизация трехмерных
данных на равномерной
сетке
31 марта 2006
18
Воксельное представление:
свойства





Описывает объем
Дискретное представление:
приближение реального
объекта!
Плохо описываются части
объекта, не параллельные
сторонам воксельного куба
Явное представление
Размер данных
пропорционален кубу
разрешения сетки

1 байт на точку:
2000 x 2000 x 2000 = 7,45 Гб !
31 марта 2006
19
Воксельное представление:
типичные алгоритмы

Пространственные алгоритмы





вычисление объема объекта
нахождение центра масс
...
булевы операции ( пересечение, объединение)
Плохо работают алгоритмы, требующие
понятия поверхности!
31 марта 2006
20
Воксельное представление:
Октодерево

Разбиение пространства на восемь
октант, которое представляется
деревом.




Упорядоченно!
Располагается вокруг начала его
локальной системы координат
Октанты первого уровня совпадают с
октантами системы координат.
Ветвь дерева:

Код

Код = «черный»


Код = "белый«


Пространство пустое, лист
Код = "серый"



Пространство заполнено, лист
область пространства частично пуста и
частично заполнена.
8 ссылок указывают на подразбиение
данной области.
Восемь указателей на восемь потомков,
пронумерованных от 0 до 7
31 марта 2006
21
Октодерево: свойства

Применяется для оптимизации
воксельного представления

Свойства:




Способ получения

31 марта 2006
Позволяет хранить информацию
только о блоках, относящихся к
объекту
Число элементов
пропорционально площади
поверхности объекта, т.е. квадрату
разрешения
Для разреженных моделей
позволяет уменьшить размер в
тысячи раз!
Из воксельного представления или
напрямую, через дискретизацию
22
Линейная запись октодерева 1






Октанты дерева
пронумерованы от 0 до 7
Конструирование адреса
каждой ветви дерева, кроме
корня.
Адрес ветви уровня i –
последовательности i чисел
от 0 до 7 – путь от корня к этой
ветви
Символ X: если в
последовательности чисел
меньше, чем максимальное
разрешение
Линейная запись дерева есть
просто сортированный массив
адресов ветвей с кодом
"черный"
Пример: {03,1X,51,53}
31 марта 2006
23
Линейная запись октодерева 2


Обход дерева в
фиксированном
порядке, например,
слева направо, сверху
вниз (в глубину).
Трехсимвольный
алгоритм:




«B»: черная ветвь
«W»: белая ветвь
«(» : внутренняя ветвь
Пример:
((WWWBWWWWBWW
W(WBWBWWWWWW
31 марта 2006
24
Октодерево: типичные
алгоритмы

Удобно для синтеза:



Переменный уровень детализации
Вывод back-to-front
Усложняются операции, требующие
информации о смежных ячейках
31 марта 2006
25
Точечное представление



Набор
неструктурированных
точек
Количество памяти,
необходимое для
хранения модели
пропорционально
количеству точек
(дискретов, sample)
Дискретное, явное
представление
31 марта 2006
26
Точечное предсталение:
структура

Массив точек с
атрибутами

31 марта 2006
Атрибуты: положение,
цвет, нормаль, размер

Описывает только
принадлежащие
объекту части
пространства

Явное хранение
координат => возможное
увеличение размера (для
«плотных» моделей)
27
Точечное представление:
свойства, типичные алгоритмы



Эффективно аппроксимирует форму
объекта
По объему памяти обычно более
эффективно чем воксельное, но менее
эффективно, чем октодерево (или
аналогичная структура)
Нет связанности, инциндентности => для
выполнения преобразований обычно
строятся дополнительные структуры
данных (октодерево)
31 марта 2006
28
Конструктивная геометрия

Структура

Набор базовых примитивов



Операции по их
комбинированию
Способ получения


сфера, куб, цилиндр...
Ручное моделирование
Свойства



Описывает объем и
поверхность (!)
Непрерывное представление
представление
Явное представление
31 марта 2006
29
Конструктивная геометрия:
операции с телами

Операции


Перенос/поворот/масштабирование
Теоретико-множественные:



31 марта 2006
Объединение
Разность
Пересечение
30
Конструктивная геометрия:
операции с телами 2

diff(union(trans1(Block1), trans2(Block2)), trans3(Cylinder))
31 марта 2006
31
Конструктивная геометрия:
структура данных





Дерево из операций и
базовых объектов
Корень – результирующий
объект
Листья – базовые
примитивы
Число потомков равно
числу операндов
операции
Из-за повторного
использования
превращается в
направленный
ациклический граф.
31 марта 2006
32
Конструктивная геометрия:
типичные алгоритмы

Пространственные алгоритмы




вычисление объема объекта
нахождение центра масс
...
Есть понятие поверхности!
31 марта 2006
33
Каркасное представление
31 марта 2006
i
X
Y
Z
1
1
1
1
2
1
-1
1
3
-1
-1
1
4
-1
1
1
5
1
1
-1
6
1
-1
-1
7
-1
-1
-1
8
-1
1
-1
1
(1,2)
2
(2,3)
3
(3,4)
4
(5,6)
5
(5,6)
6
(6,7)
7
(7,8)
8
(8,5)
9
(1,5)
10
(2,6)
11
(3,7)
12
(4,8)
34
Каркасное представление:
неоднозначная интерпретация
Нужна дополнительная
информация!
31 марта 2006
35
Грани и ребра


31 марта 2006
Грани (Faces)
1 {A,B,D}
2 {B,C,D}
3 {A,C,D}
4 {A,B,C}
Ребра (Edges)
a (A,D)
b (A,B)
…..
36
Поверхность
Две поверхности
31 марта 2006
Одна поверхность
37
Граничное представление



Кусочная
аппроксимация
поверхности объекта
Рассматриваем
представления первого
порядка (линейная
интерполяция) - грани
Структура данных:
вершины + грани
31 марта 2006
38
Разновидности граничных
представлений

Различаются по способам хранения
информации о гранях и ребрах




Явное представление
Индексированное по вершинам
Индексированное по ребрам
Крылатое представление
31 марта 2006
39
Граничное представление:
Явное представление



Каждая грань – полигон,
состоящий из
последовательности
координат вершин
Объект состоит из набора
граней
Недостатки



взаимоотношения граней
заданы неявно
координаты каждой вершины
появляются столько раз,
сколько граней имеют эту
вершину.
Алгоритмы поиска
инцидентных ребер требуют
полного перебора
31 марта 2006
40
Граничное представление:
Индексированное по вершинам



Выделение координат
вершин в отдельную
структуру
С гранями
ассоциируются не
координаты вершин, а
индексы в массиве
координат вершин
Недостатки

Вершины
Координаты
Грани
Вершины
v1
x1 y1 z1
f1
v1 v2 v3 v4
v2
x2 y2 z2
f2
v6 v2 v1 v5
v3
x3 y3 z3
f3
v7 v3 v2 v6
v4
x4 y4 z4
f4
v8 v4 v3 v7
v5
x5 y5 z5
f5
v5 v1 v4 v8
v6
x6 y6 z6
f6
v8 v7 v6 v5
v7
x7 y7 z7
v8
x8 y8 z8
Аналогично явному
представлению
31 марта 2006
41
Граничное представление:
Индексированное по ребрам



Грани определяются
через ребра
Ребра задаются
вершинами
Вершины задаются
положением в
пространстве
31 марта 2006
Реб
Верш
Верш
Коорд
Грн
Ребра
e1
v1 v2
v1
x1 y1 z1
f1
e1 e2 e3 e4
e2
v2 v3
v2
x2 y2 z2
f2
e9 e6 e1 e5
e3
v3 v4
v3
x3 y3 z3
f3
e10 e7 e2 e6
e4
v4 v1
v4
x4 y4 z4
f4
e11 e8 e7 e3
e5
v1 v5
v5
x5 y5 z5
f5
e12 e5 e4 e8
e6
v2 v6
v6
x6 y6 z6
f6
e12 e11 e10 e9
e7
v3 v7
v7
x7 y7 z7
e8
v4 v8
v8
x8 y8 z8
e9
v5 v6
e10
v6 v7
e11
v7 v8
e12
v8 v5
42
Граничное представление:
Крылатое представление

Добавляется
информация о
взаимном
расположении граней
31 марта 2006
43
Граничное представление:
типичные алгоритмы






Проверка правильности задания
Вычисление габаритного объема
Вычисление нормали в точке
Вычисление кривизны поверхности
Нахождение точки пересечения с лучом
или кривой
Определение положения точки
относительно поверхности
31 марта 2006
44
Граничные представления
высших порядков

Контрольные точки + способ интерполяции
2-го порядка и выше (полиномы Эрмита,
например)
31 марта 2006
45
Литература по теме

Алексей Игнатенко. Геометрическое
моделирование сплошных тел. Onlineжурнал «Графика и Мультимедиа»
http://cgm.graphicon.ru/obzoryi/geometricheskoe_m
odelirovanie_sploshnyih_tel.html

Алексей Игнатенко. Однородные
координаты. Online-журнал «Графика и
Мультимедиа»
http://cgm.graphicon.ru/praktika/odnorodnyie_koordinatyi.html
31 марта 2006
46
Итоги



Графический процесс
Геометрическое моделирование
Представления трехмерных данных






Воксельное (+октарное дерево)
Точечное представление
Конструктивная геометрия
Каркасное представление
Граничное представление (явное, индексированное по
вершинам, ребрам, крылатое)
Граничные представление высших порядков
31 марта 2006
47
Скачать