4. Методы построения реалистичных трехмерных изображений

4.1. Стадии постороение реалистических изображений

 

 

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

Большинство приложений используют стандартную схему построения 3D сцен. Для сокращения временных затрат на реализацию используются аппаратные возможности с применением прикладных интерфейсов API.

Этапы конвейера можно разделить на 2 основные стадии: этап геометрических преобразований и этап рендеринга.

Стадия геометрических преобразований

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

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

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

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

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

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

Удаление невидимых поверхностей – на этом этапе из списка примитивов исключаются полностью невидимые, оставшиеся позади или сбоку поверхности. В программах машинной графики для удаления невидимых частей изображения наибольшего распространения получили метод трассировки лучей, метод построчного сканирования и метод Z-буфера. Стандартом OpenGL рекомендовано использовать метод Z-буфера, который реализован практически во всех графических акселераторах. Метод предназначен для хранения информации, необходимой для правильного отражения по глубине видимых объектов в зависимости от положения наблюдателя. В процессе сканирования поверхность модели преобразуется в значения пикселов в видеобуфере. Одновременно с этим вычисляется расстояние от каждой точки поверхности до некоторой произвольной, но фиксированной плоскости, расположенной за сценой. Эти расстояния хранятся в отдельной части памяти, называемой Z-буфером, которая содержит данные для каждого пиксела изображения. Компьютер сканирует данную модель, и если расстояние, вычисленное для данного пиксела, больше, чем ранее для него же записанное, то Z-буфер обновляется – в него заносится большее из двух значений, и пикселу приписывается цвет рассматриваемой поверхности. Если же это расстояние меньше, чем ранее записанное (это указывает на то, что точка лежит на поверхности, которая расположена за фрагментом, рассмотренным ранее), то в ячейке Z-буфера остается старое значение и цвет пиксела не изменяется. Когда будут просмотрены все фрагменты сцены, видеобуфер будет содержать изображение с удаленными невидимыми поверхностями.

Стадия рендеринга

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

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

*  текстуры можно использовать для того, чтобы показать материал, из которого сделан объект;

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

*  текстуры дают возможность моделировать световые эффекты, например отражение, при создании фотореалистичных изображений.

Текстуры составляются из текселей, эквивалентных пикселям дисплея. Для отображения на дисплее тексели проецируются в пиксели.

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

Закраска примитивов. Для того, чтобы создавать правдоподобные изображения применяют специальные алгоритмы закраски для имитации неравномерного освещения. Для выполнения этой задачи используют чаще всего три модели: плоское закрашивание, закрашивание по Гуро и по Фонгу. Плоское закрашивание не требует больших вычислительных затрат. Получив описание источника света, который освещает объекты сцены, определяют оттенки цветов, основываясь на том, под каким углом падает свет. Чем больше повернута к источнику поверхность объекта, тем ярче будет она закрашена. Закраска по Гуро – сглаживает тоновый переход между ребрами полигона, вычисляя средствами линейной интерполяции интенсивность цвета для каждого пикселя полигона. Полученная поверхность более естественно моделирует отражение света и делает визуализацию реалистичней. Модель закраски Гуро применяется в качестве стандартного метода в OpenGL. В отличие от линейной интерполяции интенсивности цвета вершин по Гуро, закраска Фонга интерполирует векторы нормалей и делает расчет освещенности для каждого пикселя. Закраска по Фонгу позволяет получить правильное восприятие кривизны и световые блики, однако из-за сложности расчетов для ее создания потребуется гораздо больше времени.

Сглаживание, финальная обработка. На этом заключительном этапе рендеринга происходит обработка всей результирующей сцены. Поскольку графические устройства является дискретными, то при представлении объекта, имеющего наклонные линии, возникает эффект ступенчатости. Алгоритм сглаживания (antialiasing) снижает проявление данного эффекта. Метод полноэкранного сглаживания (full screen antialiasing) позволяет значительно улучшить качество выводимой сцены за счет расчета изображения с большим расширением и последующим усреднением значений цвета соседних пикселов. Подобным образом устраняют резкие границы между полигональными областями. На этом этапе применяются и другие эффекты, такие как смазывание (smooth), туман (fogging), которые придают сцене большую реалистичность.

Контрольные  вопросы.

1.  Дайте характеристику основным этапам графического конвейера.

2.  Чем отличаются этапы 2Д-конвейера от 3Д-конвейера?

     Содержание