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


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



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



формула 26

У частиц может быть множество других атрибутов, помимо местоположения и цвета; например, у каждой частицы может быть своя скорость. Однако, эти дополнительные атрибуты не нужны для визуализации частицы. Соответственно мы храним данные для визуализации частицы и дополнительные атрибуты в разных структурах. Создавая, уничтожая и обновляя частицы мы работаем с их атрибутами; затем, когда все готово к визуализации, мы копируем местоположение и цвет частицы в структуру 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 если она погибла.





Начало  Назад  Вперед



Книжный магазин