КГ Т5 (2). Тема Методы и алгоритмы трехмерной графики
Скачать 406.94 Kb.
|
Тема 5. Методы и алгоритмы трехмерной графики Понятие трехмерная графика в настоящее время можно считать наиболее распространенным в компьютерной графике. Однако необходимо отметить, что такое название не совсем точно, поскольку обычно рассматривается создание 3D-изображений на плоскости, а не в объеме. Истинно трехмерные способы отображения объектов с помощью ЭВМ еще недостаточно распространены. Для представления поверхностей могут использоваться методы их визуализа- ции, базирующиеся различных видах используемых математических моделей. Аналитическая модель поверхности В КГ могут использоваться несколько разновидностей аналитического описания поверхностей. Например, описание одной из координат в виде функ- ции двух аргументов: z = f(x, y). Часто используется параметрическая форма описания поверхности вида: x = F x (s, t), y = F y (s, t), z = F z (s, t), где s и t – пара- метры, изменяемые в определенном диапазоне. Преимущество параметриче- ского описания – простота задания поверхностей, соответствующих неодно- значным функциям, или замкнутых поверхностей. Для описания сложной поверхности часто используют сплайны, т.е. спе- циальные функции, наиболее приемлемые для аппроксимации ее отдельных фрагментов. Обычно применяются кубические сплайны, поскольку графики полиномов 3-й степени позволяют не только плавно соединять аппроксимируе- мые точки, но и обеспечивают непрерывность первой производной используе- мой функции, следовательно, они позволяют избежать изломов в местах сты- ковки двух последовательно выводимых сплайнов. Положительные стороны: легкость процедуры расчета координат каждой точки поверхности; небольшой объем информации, используемой для описания поверхностей сложных форм. Недостатки: громоздкие формулы описания используемых функций, снижающие ско- рость графического вывода образов; невозможность в большинстве случаев применения данной формы описания непосредственно для построения изображения поверхности. Векторная полигональная модель поверхности Для описания пространственных объектов с помощью данной модели ис- пользуются следующие элементы: вершины; отрезки прямых (векторы); поли- линии; полигоны; полигональные поверхности. Вершина – главный элемент описания векторной полигональной модели, все остальные элементы являются его производными. Двумя вершинами зада- ется вектор. Несколько векторов составляют полилинию. Полигон моделирует плоскую грань объемного объекта. Несколько граней составляют объемный объект в виде полигональной поверхности – многогранник или незамкнутую поверхность (полигональную сетку). Векторную полигональную модель можно считать наиболее распростра- ненной в современных системах КГ. Ее используют в САПР, в компьютерных играх и тренажерах, ГИС и т.п. Положительные стороны: удобство масштабирования объектов; небольшой объем данных для описания простых поверхностей, адекватно аппроксимируемых плоскими гранями; простота преобразований объектов; аппаратная поддержка многих операций в современных графических ви- деосистемах, обуславливающая достаточную скорость для оздания анима- ции. Недостатки: сложные алгоритмы для создания реалистичных изображений; аппроксимация плоскими гранями приводит к погрешности моделирования. Воксельная модель поверхности Воксельная модель – это трехмерный растр. Подобному тому, как пиксе- лы образуют изображения на некоторой плоскости, так вокселы отражают трехмерные объекты в определенном объеме. Каждый воксел также как и пиксел имеет свой цвет, кроме того, он дол- жен обладать соответствующей прозрачностью. Полная прозрачность воксела обозначает пустоту изображаемой точки объема. При моделировании объема каждый воксел отражает объемный элемент определенного размера. Чем больше число вокселов, определяющих элемен- тарный объем, т.е. чем меньше их размер, тем точнее изображение моделируе- мого трехмерного объекта, следовательно, тем выше разрешающая способность соответствующего растра. Для современной КГ воксельный метод считается одним из перспектив- ных, поскольку он может использоваться в графических устройствах отображе- ния, реализующих вывод действительно объемных изображений. Положительные стороны: простота описания сложных 3D-объектов и сцен; простота выполнения топологических операций, например показ разреза. Недостатки: большое количество информации для представления объемных данных; значительные затраты памяти ЭВМ ограничивают разрешающую способ- ность и точность моделирования. Равномерная поверхностная сетка Данная модель описывает координаты отдельных точек поверхности сле- дующим образом: каждому узлу сетки с индексами (i, j) приписывается значе- ние аппликаты z i,j . Индексам (i, j) отвечают определенные значения координат (х, у). Расстояние между узлами сетки одинаковое – dx = dy.Фактические по- добная модель представляет собой двухмерный массив, (матрицу, растр), каж- дый элемент которого сохраняет высоту узловой точки поверхности. Положительные стороны: простота описания поверхностей; возможность определения высоты любой точки с помощью простой интер- поляции. Недостатки: невозможность моделирования поверхностей, представленных неоднознач- ной функцией высоты; необходимость большого числа узловых точек для описания сложных по- верхностей. Неравномерная поверхностная сетка Неравномерной сеткой называется модель описания поверхности в виде множества отдельных точек {(x 0 , y 0 , z 0 ), ..., (x n-1 , y n-1 , z n-1 )}, принадлежащих по- верхности. Эти точки могут быть получены, например, в результате измерений поверхности объекта с помощью определенного оборудования. Данную модель можно считать обобщением для некоторых рассмотрен- ных ранее моделей. Например, векторная полигональная модель и равномерная сетка могут считаться разновидностями неравномерной сетки Положительные стороны: использование отдельных опорных точек, наиболее важных для заданной формы поверхности, обуславливает меньший объем информации по сравне- нию с другими видами моделей поверхности; наглядность показа рельефа поверхности изолиниями на картах и схемах. Недостатки: невозможность или сложность выполнения многих операций над моделями поверхностей; сложность алгоритмов преобразования используемой модели в другие виды описания поверхностей. Визуализация объемных изображений Любой геометрический объект, в том числе и трехмерный, может быть изображен различными способами. В одном случае пользователю является не- обходимым показать его внутреннюю структуру, в другом – внешнюю форму, в третьем – имитировать реальную действительность. Таким образом, способы визуализации объемных объектов можно услов- но подразделить по степени сложности используемых для этого алгоритмов на следующий ряд уровней: 1. Каркасная или «проволочная» векторно-полигональная модель. 2. Векторно-полигональная модель с линейно окрашенными гранями. 3. Векторно-полигональная модель со сложно окрашенными гранями Модели первого уровня обычно состоят из отрезков прямых или кривых линий, соединяющих вершины векторно-полигональной модели изображаемого объекта. Таким образом, все ребра и вершины фигуры оказываются видимыми, независимо от их удаленности от наблюдателя. Модели второго уровня представляют собой многогранные поверхности, изображенные с учетом удаления их невидимых точек. При этом решение озна- ченной задачи реализуемого посредством трех базовых алгоритмов: сортировки граней по глубине; плавающего горизонта; заполнения Z-буфера. Модели третьего уровня отличаются от предыдущих тем, что плоские грани векторно-полигональной модели изображаемого объекта окрашиваются нелинейно с помощью специальных методов Гуро или Фонга, создающих ил- люзию сглаживания многогранников в форму криволинейных поверхностей. Алгоритмы удаления невидимых линий Способ сортировки граней по глубине основывается на реализации гра- фического вывода всех граней разбираемой трехмерной фигуры в направлении – от дальних к ближним. В результате его работы на формируемом изображе- нии объекта его элементы, находящиеся ближе всего к наблюдателю, перекры- вают более удаленные, что и приводит к удалению невидимых точек фигуры. Метод не является универсальным, т.к. в ряде случаев определение порядка вы- вода граней оказывается весьма сложной задачей. Алгоритма плавающего горизонта отличается от предыдущего метода по- следовательностью графического вывода граней фигуры, т.е. – от ближних к дальним. При этом на каждом шаге его работы внешние контуры выведенного на экран изображения рассматриваются в качестве двух примыкающих друг к другу линий – нижнего и верхнего горизонтов. В свою очередь, в рамках сле- дующего шага выводятся только те элементы текущих граней, которые оказы- ваются выше верхнего и ниже нижнего горизонтов. Метод Z-буфера основан на использовании дополнительного массива (буфера) данных, дополнительно создаваемого в оперативной памяти ЭВМ, для хранения третьей координаты каждой точки фигуры. Необходимо отметить, что данная координата рассматривается в экранной плоскости, т.е. отображает уда- ленность точки о наблюдателя. Первоначально Z-буфер заполняется минималь- ными величинами экранной координаты Z, которые постепенно заменятся ее большими значениями. Таким образом, полностью заполненный Z-буфер пред- ставляет собой матрицу, хранящую экранные аппликаты точек, расположенных ближе всего к наблюдателю при одних и тех значениях их экранных абсцисс и ординат. Данный метод является наиболее распространенным в компьютерной графике, т.к. обладает наибольшей эффективностью вследствие отсутствия необходимости предварительной сортировки граней фигуры по глубине. Методы сложного окрашивания граней Если каждая плоская грань трехмерной фигуры обладает определенным постоянным цветом, то различия во взаимном положении соседних граней ока- зываются весьма заметными, т.е. она выглядит как многогранник. С одной сто- роны, для создания иллюзии гладкости поверхности любого пространственного объекта требуется существенное увеличение общего числа моделирующих его граней, что резко снижает скорость графического вывода и анимационной пе- рерисовки компьютерных изображений. С другой стороны, реалистичность изображения трехмерных фигур мо- жет быть достигнута за счет закрашивания каждой ее грани (обще число кото- рых может быть достаточно невелико) не единым цветом, а его плавно изменя- ющимися оттенками, что и составляет общую суть прикладных графических алгоритмов Гуро и Фонга. Метод Гуро основывается на идее закрашивания каждой плоской грани изображаемого трехмерного объекта плавно изменяющимися оттенками опре- деленного цвета, вычисляемыми путем линейной интерполяции текущих цве- товых значений соседних граней (полигонов). Его алгоритм реализуется в че- тыре основных этапа: Определяются значения нормалей в центре каждой грани фигуры. На базе численного усреднения найденных величин рассчитываются зна- чения нормалей в вершинах. На основании найденных величин задаются интенсивности отраженного света в вершинах, необходимые для количественного выражения значе- ний их текущего цвета, определяемых в рамках выбранной модели отра- жения света. Точки заполнения граней, окрашиваются цветовым оттенком, соответ- ствующим линейной интерполяции его значений в вершинах фигуры. Главным недостатком приведенного алгоритма заключается в том, что если лицевая грань изображаемого объекта оказывается параллельной экранной плоскости, то она вся целиком окрашивается одним и тем же цветовым оттен- ком, т.е. оказывается явно видимой на фоне остальной гладкой поверхности. Метод Фонга аналогичен общему содержанию метода Гуро, но при этом позволяет полностью исключить вышеназванный недостаток последнего, т.к. в его рамках практическое определение цвета каждого пикселя фигуры осу- ществляется на основании интерполяции значений нормалей к граням и верши- нам, а не интенсивностей отраженного ими света. Алгоритм метода Фонга реа- лизуется в три этапа: Определяются значения нормалей в центре каждой грани фигуры. Определяются нормали в вершинах. При этом для каждой точки закра- шиваемой грани рассчитывается интерполированный нормальный вектор. На основании направлений векторов всех полученных нормалей в рамках выбранной модели отражения света определяются цветовые оттенки то- чек заполнения грани. Алгоритмическая организация метод Фонга несколько сложнее метода Гуро, однако, он является более универсальным и гарантирует значительно лучшие результаты, особенно при имитации зеркальных поверхностей. |