Помощь в написании студенческих работ
Антистрессовый сервис

Графический конвейер. 
Разработка игрового программного приложения

РефератПомощь в написанииУзнать стоимостьмоей работы

Нынешние графические карты предоставляют пользователю возможность замены некоторых частей графического конвейера шейдером. Шейдер — это специальная программа, которая использует определенные программируемые регистры видеокарты для создания различных графических эффектов. Рисунок 2.2 — Обработка фрагментов В каждую из этих частей графического конвейера можно вставить свой определенный шейдер… Читать ещё >

Графический конвейер. Разработка игрового программного приложения (реферат, курсовая, диплом, контрольная)

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

На рисунке 2.1 показана упрощенная модель графического конвейера, которая условно делится на две части: обработка геометрии и обработка фрагментов (пикселей).

Обработка геометрии.

Рисунок 2.1 — Обработка геометрии На первой стадии графического конвейера выполняется преобразование координат (применение мировой, видовой и проекционной матриц) вершины, перевод вершины в пространство отсечения, расчет освещения, применение материалов, определение цвета каждой вершины с учетом всех источников света и генерация текстурных координат.

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

Растеризатор делит треугольник на фрагменты (пиксели), для которых интерполируются текстурные координаты и цвет. Затем для каждого фрагмента происходит выполнение следующих операций: проверка принадлежности пикселя, наложение текстур (заданные для фрагмента координаты текстуры определяют интерполированный цвет из элементов текстурного изображения — текселей, значение этого цвета комбинируется с цветом фрагмента), применение эффектов тумана, альфа-тест, тест шаблона (stencil-test), тест глубины, смешивание, дизеринг и логические операции. После обработки всех этих методов полученный фрагмент помещается в буфер кадра, который впоследствии выводиться на экран.

Обработка фрагментов.

Рисунок 2.2 — Обработка фрагментов В каждую из этих частей графического конвейера можно вставить свой определенный шейдер. Существует два различных шейдера: вершинный шейдер (vertex shader) и пиксельный шейдер (pixel shader).

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

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

Пиксельные шейдеры в свою очередь предоставляют широкие возможности по обработке фрагментов. Они позволяют пользователю по шагам управлять процессом наложения текстур, определения глубины и вычисления цвета фрагментов. Что это дает? Во-первых, можно создавать в играх попиксельное освещение. Во-вторых, позволяет создавать красивые эффекты с частицами (например, огонь, дым, капли дождя). И многое другое.

Пиксельные шейдеры выполняются для каждого фрагмента в фазе растеризации треугольников. Фрагмент (или пиксель) — точка, с оконными координатами, полученная растеризатором после выполнения над ней ряда операций. Проще говоря, результирующая точка в буфере кадра, совокупность этих точек потом формирует изображение. Пиксельные шейдеры оперирует над фрагментами до заключительных стадий, т. е. до тестов глубины, альфы и stencil. Пиксельный шейдер получает интерполированные данные (цвет, текстурные координаты) из вершинного шейдера. [4].

Показать весь текст
Заполнить форму текущей работой