Описание общей части задания.

Лабораторная работа № 5

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

Описание области задачи.

Системы частиц (particle system) - это объекты-эмиттеры (emitters), генерирующие по заданному алгоритму частицы точечной массы с определенной формой, начальной скоростью, сроком жизни и другими свойствами.

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

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

Количество частиц в системе может быть постоянным либо меняться со временем. Если количество частиц может меняться, то могут появляться (зарождаться) новые частицы или исчезать (умирать) старые.

Свойствами частицы могут быть, например, цвет, время жизни, возраст, размер, скорость и направление движения и т.д. Набор свойств определяет тип частицы. Эти свойства могут меняться в течение жизни частицы, но сам набор (состав) свойств частицы остается неизменным. При зарождении частицы ее свойства инициализируются начальными значениями.

Описание общей части задания.

1. В качестве источников-генераторов (еmitters) частиц выступают объекты различной конфигурации. Количество частиц от 100 до 300. Координаты начальной позиции частицы рассчитываются при помощи случайного числа, переведенного на поверхность требуемой фигуры. Направление движения частицы определяется по нормали к поверхности фигуры:

Cylinder: Sphere: Cone:

r*cos(a) r*cos(a)*sin(b) r(h)*cos(a)

r*sin(a) r*sin(a)*sin(b) r(h)*sin(a)

r*sin(b)

2. Каждая частица должна характеризоваться следующим набором параметров: координаты, скорость, размер, цвет (с возможным добавлением текстуры и прозрачности), время жизни, след от частицы. Параметры могут зависеть друг от друга (например, цвет частицы изменяется в зависимости от времени жизни). По окончании времени жизни частица исчезает и порождается новая частица. Тем самым система становится цикличной.

3. Так как время системы дискретно, то определяются правила поведения частиц на каждом такте (dtime). Частицы должны изменять свое расположение по определенным законам, одинаковым для всей системы. Новая позиция частицы рассчитывается по следующим правилам (в векторной форме):

_______ ________ _________

Скорость = Скорость + Ускорение * dtime;

________ ________ ________

Позиция = Позиция + Скорость * dtime;

Возможно использование собственных идей для расчета новой позиции частицы. Поощряется красивая формула для расчета изменений.

4. За каждой из частиц остается след, который изображается при помощи повторения частицы (поощряются также другие способы изображения следа). След может иметь различную протяженность или отсутствоать.

5. Требуется осуществить моделирование столкновений или/и физических сил, воздействующих на систему.

Столкновения: В качестве объектов, с которыми могут сталкиваться частицы выступают стандартные примитивы (Cylinder, Sphere, Plane, Box). Столкновение моделируется как изменение направления движения частицы (например, на противоположное или на какое-либо единое для всех частиц) с сохранением или потерей/увеличением скорости.

Физические силы: Для моделирования физических воздействий используются «магниты»-притягиватели (аттракторы) или отталкиватели (анти-аттракторы) в форме стандартных примитивов (Cylinder, Point, Plane). При приближении к таким объектам частицы должны изменять скорость и направление движения (по нормали к объекту) в зависимости от расстояния до него. В случае с аттрактором: когда расстояние до аттрактора становится меньше заданного, частица изменяет направление движения и притягивается к аттрактору по нормали с нарастающей скоростью. В случае с анти-аттрактором: когда расстояние до анти-аттрактора становится меньше заданного, частица изменяет направление движения и отталкивается от анти-аттрактора по нормали с нарастающей скоростью.

Задания предусматривают некоторую обязательную часть, отступать от которой нельзя. В остальном предполагается свобода в установлении конкретных параметров или формул изменения параметров.

Наши рекомендации