Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Пример полигональной сетки

Pi - многоугольники, Vj - вершины, Ek – ребра

 

Недостаток:

-двойная прорисовка ребер

-для поиска многоугольников с одной вершиной необходимо сравнение пар ребер всех примыкающих многоугольников

-неоднозначность определения вершин при сравнении координат (потеря точности)

 

Указатели в список вершин.

Узел сетки запоминается лишь один раз в списке вершин:

V=(x1,y1,z1)…(xn,yn,zn))

Многоугольник определяется ссылкой на элемент списка.

 

Пример:

 

 

Список вершин:

V=(V1,V2,V3,V4) =((x1,y1,z1)…(xn,yn,zn))

Описание многоугольников:

P2=(1,2,4); P1=(4,2,3)

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

Преимущество:

- экономия памяти за счет однократного описания каждой вершины

- при преобразовании модели координаты вершин легко меняются.

 

Явное задание ребер.

Имеется список вершин V. Имеется список ребер Е, каждый элемент

которого описывает тетраэдр:

Е=(V1,V2, P1,P2)

V1 – вершина 1

V2 – вершина 2

P1 – многоугольник 1

P2 – многоугольник 2

Если ребро принадлежит одному многоугольнику, то одна из ссылок а – пуста.

Многоугольник определяется как ссылка на ребра Р=(Е1,... Еn)

 

 

V=(V1,V2,V3,V4)=(x1,y1,z1…….. xn,yn,zn)

E1=(V1,V2,P2, l)

E2=(V2,V3,P1, l)

E3=(V3,V4,P1, l)

E4=(V4,V2,P,P2)

E5=(V4,V1,P2, l)

P2=(E1,E4,E5)

P1=(E1,E3,E4) E4 – не прорисовывается т.к. ссылка на P2

l = пусто

Вычеркиваются все ребра без повторного прохода.

 

Для определения произвольной точки внутри многоугольника на плоскости можно пользоваться системой уравнений:

Ax+By+Cz+D=0 – уравнение плоскости

Ax1+By1+Cz1+D=0

Ax2+By2+Cz2+D=0

Ax3+By3+Cz3+D=0

Уравнения решаются относительно x,y,z.

Где: коэффициенты A,B,C,D определяются для плоскости по трем вершинам.

 

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

 

Список граней

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

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

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

Для рендеринга грань обычно посылается в графический процессор как множество индексов вершин, и вершины посылаются как позиция/цвет/структуры нормалей (на рисунке дана лишь позиция). Поэтому изменения формы, но не геометрии, могут быть динамически обновлены просто переслав данные вершины без обновления связанности граней.

Моделирование требует легкого обхода всех структур. С сеткой использующей список граней очень легко найти вершины грани. Также, список вершин содержит список всех граней связанных с каждой вершиной. В отличии от вершинного представления, и грани и вершины явно представлены, так что нахождение соседних граней и вершин постоянен по времени. Однако, ребра не заданы явно, так что поиск все еще нужен чтобы найти все грани, окружающие заданную грань. Другие динамические операции, такие как разрыв или объединение грани, также сложны со списком граней.

 

 

"Крылатое" представление сетки

"Крылатое" представление явно представляет вершины, грани и ребра сетки. Это представление широко используется в программах для моделирования, предоставления высочайшей гибкости в динамическом изменении геометрии сетки, потому что могут быть быстро выполнены операции разрыва и объединения. Их основной недостаток - высокие требования памяти и увеличенная сложность из-за содержания множества индексов.

 

"Крылатое" представление явно представляет вершины, грани и ребра сетки. Это представление широко используется в программах для моделирования, предоставления высочайшей гибкости в динамическом изменении геометрии сетки, потому что могут быть быстро выполнены операции разрыва и объединения. Их основной недостаток - высокие требования памяти и увеличенная сложность из-за содержания множества индексов.

"Крылатое" представление решает проблему обхода от ребра к ребру и обеспечивает упорядоченное множество граней вокруг ребра. Для любого заданного ребра число исходящих ребер может быть произвольным. Чтобы упростить это, "крылатое" описание предоставляет лишь четыре ближайшие ребра по часовой и против часовой стрелки на каждом конце ребра. Другие ребра можно обойти постепенно. Поэтому информация о каждом ребре напоминает бабочку, поэтому представление называется "крылатым". Рисунок показывает пример параллелепипеда в "крылатом" представлении. Полные данные по грани состоят двух вершин (конечные точки), двух граней (по каждую сторону), и четыре ребра("крылатое" ребро).

Рендеринг "крылатого" представления графическим оборудованием требует генерирования списка индексов граней. Обычно это делается тогда когда изменяется геометрия. "Крылатое" представление идеально подходит для динамической геометрии, такой как подразделение поверхностей и интерактивное моделирование, так как изменения сетки могут происходить локально. Обход вокруг сетки может быть эффективно выполнен для обнаружения столкновений.

 

Другие представления

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

Прогрессивные сетки передают данные о вершинам и гранях с повышающимся уровнем детализации. В отличии от потоковых сеток, прогрессивные сетки дают общую форму целого объекта, но на низком уровне детализации. Дополнительные данные, новые ребра и грани, прогрессивно увеличивают детализацию сетки.

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

 

<== предыдущая лекция | следующая лекция ==>
Элементы моделирования сетки | Построение гладких поверхностей
Поделиться с друзьями:


Дата добавления: 2014-01-13; Просмотров: 722; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.02 сек.