Народный учебник по OpenGL


Урок 19. Машина моделирования частиц с использованием полосок из треугольников - часть 13



Сопротивление применяется к скорости перемещения по y и z, так же, как и по x.


      particle[loop].xi+=particle[loop].xg; // Притяжение по X для этой записи

     

particle[loop].yi+=particle[loop].yg; // Притяжение по Y для этой записи

     

particle[loop].zi+=particle[loop].zg; // Притяжение по Z для этой записи


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


      particle[loop].life-=particle[loop].fade; // Уменьшить жизнь частицы на ‘угасание’


Теперь мы проверим, жива ли частица, после того как мы изменили ее жизнь.


      if (particle[loop].life<0.0f) // Если частица погасла

     

{


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


        particle[loop].life=1.0f; // Дать новую жизнь

       

// Случайное значение угасания

       

particle[loop].fade=float(rand()%100)/1000.0f+0.003f;


Мы также сделаем сброс позиций частицы в центр экрана. Мы делаем это, при помощи сброса позиций x, y и z частицы в ноль.


        particle[loop].x=0.0f; // На центр оси X

       

particle[loop].y=0.0f; // На центр оси Y

       

particle[loop].z=0.0f; // На центр оси Z


После того, как частица была сброшена в центр экрана, мы задаем ей новую скорость перемещения / направления. Отмечу, что я увеличил максимальную и минимальную скорость, с которой частица может двигаться со случайного значения в диапазоне 50 до диапазона 60, но на этот раз, мы не собирается умножать скорость перемещения на 10. Мы не хотим взрыва на этот раз, мы хотим иметь более медленно перемещающиеся частицы.


Также заметьте, что я добавил xspeed к скорости перемещения по оси X, и yspeed к скорости перемещения по оси Y. Это позволит нам позже контролировать, в каком направлении двигаются частицы.




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



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