Введение в программирование трехмерных игр с DX9

       

Частицы и их атрибуты



14.1.3. Частицы и их атрибуты

У частиц может быть множество других атрибутов, помимо местоположения и цвета; например, у каждой частицы может быть своя скорость. Однако, эти дополнительные атрибуты не нужны для визуализации частицы. Соответственно мы храним данные для визуализации частицы и дополнительные атрибуты в разных структурах. Создавая, уничтожая и обновляя частицы мы работаем с их атрибутами; затем, когда все готово к визуализации, мы копируем местоположение и цвет частицы в структуру Particle.

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

struct Attribute { D3DXVECTOR3 _position; D3DXVECTOR3 _velocity; D3DXVECTOR3 _acceleration; float _lifeTime; float _age; D3DXCOLOR _color; D3DXCOLOR _colorFade; bool _isAlive; };

_position — Местоположение частицы в мировом пространстве.

_velocity — Скорость частицы, обычно измеряемая в условных единицах в секунду.

_acceleration — Ускорение частицы, обычно измеряемое в условных единицах за секунду.

_lifeTime — Сколько времени должно пройти до гибели частицы. Например, мы можем указать, что частицы образующие лазерный луч пропадают через указанный период времени.

_age — Текущий возраст частицы.

_color — Цвет частицы.

_colorFade — Как цвет частицы меняется с течением времени.

_isAlive — True если частица жива, false если она погибла.



Содержание раздела