Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпоры по компьютерной графике [по билетам].doc
Скачиваний:
68
Добавлен:
02.05.2014
Размер:
805.89 Кб
Скачать

11. Представление геометрических моделей. Полигональные сетки и способы …

Наиболее распространённые представления графических объектов:

1. Пространственное подразбиение.

Если в трёхмерном пространстве есть тело, то это пространство можно разбить на кубики (воксели). Для каждого кубика b(i, j, k) можно указать, пересекается ли он с телом, то есть лежит ли он внутри, на границе – 1 или вне тела – 0. В некоторых случаях удобно применять некоторые промежуточные значения, задавая тем самым плотность в данной точке пространства.

Характеристики воксельного представления:

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

• Требует больших размеров памяти для хранения, и эти требования резко возрастают при увеличении разрешения (растет как куб от разрешения).

• С таким представлением хорошо работают в основном пространственные алгоритмы, такие как вычисление объема объекта, нахождение центра масс и т.д.

• Можно проводить набор операций: пересечение, объединение, вычитание.

. Граничное (поверхностное). Тела задаются ограниченными фрагментами поверхностей.

3. Конструктивное.

При конструктивном представлении вводятся примитивы тел. Конструируя эти объекты и применяя теоретико-множественные операции, можно получить более сложное тело.

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

Полигональная сетка представляет собой совокупность ребер, вершин и многоугольников.

Виды представлений полигональных сеток:

1. Явное представление – многоугольник задается последовательностью вершин {x1,y1,z1},{x2,y2,z2},…,{xn,yn,zn}

2. Список вершин – перечисление всех вершин, встречающихся в многоугольниках: {x1,y1,z1},…,{xn,yn,zn}. При представлении многоугольника указываем лишь индексы вершин.

3. Определение многоугольника списком ребер. В такой модели грань представляется набором ребер и вершины грани определяются через ребра.

4. Крылатое представление: структура основывается на списке ребер, и для каждого ребра возникают две соседние грани. Каждое ребро ссылается на соседние грани, на ближайшие соседние ребра и опирается на две вершины. В результате ссылки для каждого ребра образуют кольцевые списки.

Полигон удобно представлять в виде списка (кольца) вершин, хранящегося в кольцевом списке с двойными связями. Необходимы функции для добавления, удаления, редактирования, поиска вершин.

Часто применяются следующие способы представления полигонов:

указатель на список вершин;

количество вершин;

указатель на текущую вершину;

функции для работы с вершинами;

функция расщепления полигона (деление полигона на два меньших по некоторой хорде);

проверка принадлежности точки полигону;

поиск наименьшей вершины (если определена некоторая функция упорядочивания).

Вопрос 38

Удаление скрытых линий и поверхностей: алгоритм трассировки лучей (прямая и обратная, методы оптимизации).

При рассмотрении этого алгоритма предполагается, что наблю­датель находится на положительной полуоси z, а экран дисплея пер­пендикулярен оси z и располагается между объектом и наблюдате­лем.

Удаление невидимых (скрытых) поверхностей в алгоритме трас­сировки лучей выполняется следующим образом:

- Сцена преобразуется в пространство изображения.

- Из точки наблюдения в каждый пиксель экрана проводится луч, и определяется, какие именно объекты сцены пересека­ются с лучом.

- Вычисляются и упорядочиваются по z координаты точек пе­ресечения объектов с лучом. В простейшем случае для непро­зрачных поверхностей без отражений и преломлений види­мой точкой будет точка с максимальным значением z-координаты. Для более сложных случаев требуется сортиров­ка точек пересечения вдоль луча.

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

При использовании прямоугольной оболочки определяется пре­образование, совмещающее луч с осью z. Оболочка подвергается этому преобразованию, а затем попарно сравниваются знаки xmin с xmax и ymin с ymax. Если они различны, то есть пересечение луча с обо­лочкой.

При использовании сферической оболочки для определения пе­ресечения луча со сферой достаточно определить расстояние от луча до центра сферы. Если оно больше радиуса, то пересечения нет.

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

Билет 28