Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Л_6,7.doc
Скачиваний:
2
Добавлен:
15.09.2019
Размер:
3.22 Mб
Скачать

Лекция № 6,7

ТРЁХМЕРНАЯ ГРАФИКА

Будем считать, что необходимо смоделировать 3D-объект на 2D плоскости.

Упрощенно схему этого процесса можно представить следующей последовательностью действий:

Моделирование

Модель – абстрактное представление сущности реального мира, представление некоторых (необязательно всех) свойств объекта, либо конкретно существующего, либо абстрактного, его особенностей.

Задача моделирования – поиск вида (представления) модели, наилучшим образом отвечающего решаемой задаче.

Нам будут более всего интересны геометрические модели, которые естественны для графического представления.

Геометрическое моделирование – моделирование объектов различной природы с помощью геометрических типов данных

Моделируются:

• объекты реального мира,

• синтетические объекты (например, научная визуализация)

Компоненты геометрической модели:

• Пространственное расположение и форма – геометрия объекта и некоторые

атрибуты цвет, текстура.

• Топология (связность с другим объектом).

Выбор представления:

• максимизирование возможностей графической подсистемы

• алгоритмы обработки данных

• алгоритмы редактирования данных

Создание моделей

Автоматическое

• устройства ввода трехмерной информации (например, 3d сканеры)

• реконструкция из изображений (машинное зрение)

• результаты вычислений

Ручное

• системы для моделирования (3D studio MAX, Maya, т.д.)

Пример системы моделирования

Система координат.

Будем использовать декартову систему координат, как наиболее распространенную.

Система координат называется правой, если для совмещения с положительной полуосью Y положительную полуось X требуется повернуть на +90 при этом направление движения расположенного вдоль оси Z и поворачивающегося против часовой стрелки правого винта и положительной полуоси Z совпадают.

Аналитическая модель.

Аналитической моделью будем называть описание поверхности математиче­скими формулами. В компьютерной графике можно использовать много разновидностей такого описания. Например, в виде функции двух аргументов z = f (x, у). Можно использовать уравнение F (х, у, z) = 0.

Зачастую используется параметрическая форма описания поверхности. Формулы для трехмерной декартовой системы координат (х, у, z):

х =Fx(s, f),

y = Fy(s,t)

z = Fz(s,t),

где s и t параметры, которые изменяются в определенном диапазоне, а функции Fx, Fy и Fz будут определять форму поверхности.

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

Пример. Рассмотрим аналитическое описание поверхности шара. Сначала как функцию двух аргументов:

Затем в виде уравнения:

х2 + у2 + z2 - R2 = 0.

А также в параметрической форме:

Для описания сложных поверхностей часто используют сплайны.

Сплайн – специальная функция, более всего пригодная для аппроксимации отдельных фрагментов поверхности. Несколько сплайнов образовывают модель сложной поверхности. Сплайн – тоже поверхность, но такая, для которой можно достаточно просто вычислять координаты ее точек. Обычно используют кубические сплайны, так как третья степень – наименьшая из степеней, позволяющих описы­вать любую форму, и при стыковке сплайнов можно обеспечить непрерыв­ную первую производную – такая поверхность будет без изломов в местах стыка. Сплайны часто задают параметрически. Запишем формулу для компо­ненты x(s,t) кубического сплайна в виде многочлена третьей степени пара­метров s и t:

x(s,t) = а11 s3t3 + а12 s3t2 + a13 s3t + a14 s3 +

+ a21 s2t3 + a22 s2t2 + а23 s2t + a24 s2 +

+ a31 s t3 + a32 s t2 + а33 s t + a34 s +

+ a41 t3 + a42 t2 + a43 t + a44.

Cо способами определения коэффициентов aij, для сплайнов, которые имеют заданные свойства можно ознакомиться в математической литературе. Одна из разновидностей сплайнов – кривая Безье.

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

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

Векторная полигональная модель.

Для описания пространственных объектов здесь используются такие элемен­ты: вершины, отрезки прямых (векторы); полилинии, полигоны; полигональ­ные поверхности (рис. 4.2).

Элемент "вершина" (vertex) – главный элемент описания, все другие являются производными. При использовании трехмерной декартовой системы координаты вершин определяются как i, уi, zi). Каждый объект однозначно определяется координатами собственных вершин.

Вершина может моделировать отдельный точечный объект, размер которого не имеет значения, а также может использоваться в качестве конечных точек для линейных объектов и полигонов. Двумя вершинами задается вектор. Не­сколько векторов составляют полилинию. Полилиния может моделировать отдельный линейный объект, толщина которого не учитывается, а также мо­жет представлять контур полигона. Полигон моделирует площадный объект. Один полигон может описывать плоскую грань объемного объекта. Несколь­ко граней составляют объемный объект в виде полигональной поверхно­сти – многогранник или незамкнутую поверхность (полигональная сетка).

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

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

Первый способ. Сохраняем все грани в отдельности.

Схематично это можно изобразить так:

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

где Рв разрядность чисел, необходимая для представления координат.

Шесть граней здесь описываются 24 вершинами. Такое представление избы­точно – каждая вершина записана трижды. Не учитывается то, что у граней есть общие вершины.

Второй способ. Для такого варианта координаты восьми вершин сохраняются без по­второв. Вершины пронумерованы, а каждая грань дается в виде списка индексов вер­шин (указателей на вершины).

В этом случае затраты памяти составят:

где Рв разрядность координат вершин, Риндекс разрядность индексов.

Третий способ. Этот способ основывается на иерархии: вершины-ребра-грани (в литературе его иногда на­зывают линейно-узловой моделью).

Затраты памяти:

где Рв разрядность координат, Ринд вершин и Ринд.ребер разрядность индек­сов вершин и ребер соответственно.

Сравнение трех способов описания полигональной модели.

Объем памяти.

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

Скорость вывода полигонов. Если для полигонов необходимо рисовать линию контура и точки заполнения, то первый и второй варианты близки по быстродействию – и контуры, и заполнения рисуются одинаково. Отличия в том, что для второго варианта сначала надо выбирать индекс вершины, что замедляет процесс вывода. В обоих случаях для смежных граней повторно рисуется общая часть контура. Для третьего варианта можно предусмотреть более совершенный способ рисования контура – каждая линия будет рисо­ваться только один раз, если в массивах описания ребер предусмотреть бит, означающий, что это ребро уже нарисовано. Это обуславливает преимущест­ва третьего варианта по быстродействию. Блокирование повторного рисования линий контуров смежных граней позво­ляет решить также проблему искажения стиля линий, если линии контуров не сплошные, а, например, пунктирные.

Топологический аспект. Представим, что имеется несколько смежных гра­ней. Что будет, если изменить координаты одной вершины в структурах дан­ных? Результат приведен на рис. 4.8.

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

Положительные черты векторной полигональной модели:

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

  • небольшой объем данных для описания простых поверхностей, которые адекватно аппроксимируются плоскими гранями;

  • необходимость вычислять только координаты вершин при преобразовани­ях систем координат или перемещении объектов;

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

Недостатки полигональной модели:

  • сложные алгоритмы визуализации для создания реалистичных изображе­ний; сложные алгоритмы выполнения топологических операций, таких, например, как разрезы;

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

Воксельное представление.

Смысл – дискретизация пространства на равномерной сетке.

Воксельная модель – это трехмерный растр. Подобно тому, как пиксели располагаются на плоскости 2В-изображения, так и вокселы образовывают трехмерные объекты в определенном объеме (рис. 4.9). Воксел – это эле­мент объема (voxel – volume element).

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

Для современной компьютерной графики вексельный метод считается одним из перспективных. Его используют в компьютерных системах для медицины (например, при сканировании томографом) Вокселы используются для графических устройств отображения, которые создают действительно объ­емные изображения.

Положительные черты воксельной модели:

  • позволяет достаточно просто описывать сложные объекты и сцены; про­стая процедура отображения объемных сцен;

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

Недостатки воксельной модели:

  • большое количество информации, необходимой для представления объ­емных данных. Например, объем 256x256x256 имеет небольшую разре­шающую способность, но требует свыше 16 миллионов вокселов;

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

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

Существуют способы, которые оптимизируют воксельное представление. Например, октарные деревья, которые позволяют хранить только части пространства, занятые объектом.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]