Разработка Системы Частиц На Платформе Directx 9. Часть Ii

Этот пост — 2-я и последняя часть статьи о разработке системы частиц в DirectX 9. Если вы еще не читали первую часть, рекомендую ознакомиться .

В этой части статьи будут рассмотрены: работа со спрайтами, вершинные и пиксельные шейдеры, эффекты, пост-эффекты.

В частности, для реализации пост-эффекта используйте рендеринг по текстуре.



0. Основная информация



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

Поскольку частицы в нашей системе — это всего лишь точки, то, применяя к ним разные текстуры, мы можем визуализировать любой объект (например, облака).

Поскольку спрайт — это простая текстура, необходимо иметь о нем базовое представление.

Текстура вместо пикселей, как мы привыкли, имеет текселы.

Direct3D использует систему координат для текстур, состоящую из горизонтальной оси U и вертикальной оси V.

Разработка системы частиц на платформе DirectX 9. Часть II



Вершинные шейдеры
Вершинные шейдеры — это программа, созданная на специальном языке.

ХЛСЛ (или ассемблер) и занимается преобразованием вершин и освещением.

В вершинном шейдере мы можем взять позицию вершины и переместить ее в совершенно другое место.

В статье вершинный шейдер также будет использоваться для генерации координат текстуры.



Пиксельные шейдеры
Они похожи на вершинные шейдеры, но вместо этого растрируют изображение.

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

Мы будем использовать их для текстурирования.



Ээффекты и постэффекты
Эффекты будут включать пиксельные и/или вершинные шейдеры, а также один или несколько проходов рендеринга.

С их помощью можно реализовать, например, эффекты размытия или свечения.

Пост-эффекты отличаются от обычных тем, что применяются к уже растрированной сцене.



1. Текстурируем частицы

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

struct VertexData {

Теги: #C++ #система частиц #система частиц #direct3d #DirectX 9 #3d графика #шейдеры #шейдеры #эффекты #рендеринг цели #рендеринг в текстуру #программирование #Разработка игр
Вместе с данным постом часто просматривают: