Сортировка по Z-буферу и смешение текстур 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Сортировка по Z-буферу и смешение текстур



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

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

Наложение текстуры

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

 
 

 

Рис.4. Текстурированная сфера

 

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

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

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

 

Закраска треугольников

Третий этап стадии рендеринга состоит в закраске треугольников. Для выполнения этой задачи используются три модели: плоское закрашивание и закрашивание по Гуро и по Фонгу. Модель с плоским закрашиванием заключается в равномерном однородном закрашивании каждого треугольника одним цветом (обычная заливка). В результате объект предстает как множество плоских граней (см. рис.5).

 
 

 

 

Рис.5. Сфера с плоским закрашиванием

 

В процедурах закрашивания по Гуро и по Фонгу цвет интерполируется относительно границ треугольника, что приводит к более реалистичной и непрерывной закраске объекта. Закрашивание по Фонгу дает более реалистичный результат, чем закрашивание по Гуро, но требует более интенсивных вычислений (см. рис.6).

 
 

 

Рис.6. Сфера с закрашиванием по Фонгу

 

Сглаживание

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

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

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

 



Поделиться:


Последнее изменение этой страницы: 2016-12-29; просмотров: 435; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.31.39 (0.011 с.)