В предыдущем выпуске мы обсудили явление параллакса и применили его для имитации движения сквозь звёзды.
Теперь, имея тот же самый код, можно модифицировать его так, чтобы получать другие эффекты. Прелесть в том, что задав трёхмерные координаты частиц и перспективную проекцию, остаётся только двигать частицы в нужном направлении, а всё остальное получится само.
Что мы делали для движения сквозь звёзды:
- Новые звёзды "рождаются" с любыми координатами x, y, но на самой дальней дистанции z (расстояние вглубь от плоскости экрана).
- Все звёзды двигаются нам навстречу, то есть изменяется их координата z.
- Звезда удаляется, когда её координата z достигает плоскости экрана или когда её видимые координаты x, y выходят за пределы экрана.
Вообще говоря, если представить, что вы лежите на спине и смотрите вверх, то летящие звезды можно представить как капли дождя, падающие на вас. Но мы займёмся более традиционным представлением дождя.
Чтобы его сделать, нужно изменить всего три параметра:
- Новые капли должны рождаться на любой дистанции z и с любой координатой x, но с минимальной координатой y (так как они падают сверху вниз)
- Все капли должны двигаться вниз, то есть должна меняться координата y.
- Капля удаляется, когда координата y выходит за нижний край экрана
Всё остальное остается таким же, и о чудо – мы уже получили дождь. Но не совсем. Если оставить его как есть, капли будут выглядеть белой крупой. Чтобы придать реалистичности, я делаю из капель струи. То есть вместо точки рисуется линия, и эта линия тем длиннее, чем быстрее движется капля. Также я настроил максимальную глубину z – она стала гораздо меньше, чем для звезд, потому что обычно мы не видим капли дождя слишком далеко. Увеличил скорость движения. И кроме того, чтобы придать большей достоверности, добавил ускорение для капель. Ведь они падают вниз под действием силы притяжения, и значит, должны увеличивать свою скорость. Это не очень заметный эффект, но думаю, что с ним немного лучше.
Вот что получилось: смотрите по ссылке прямо в браузере.
Эффект дождя можно улучшить, добавив, например, порывы ветра. Для этого нужно двигать капли по горизонтали, то есть менять координату x.
Это мы сделаем в следующей части, но не для дождя, а для снега.
Другие материалы: