Добавить в корзинуПозвонить
Найти в Дзене
ZDG

Параллакс в играх. Часть 2: Дождь

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

В предыдущем выпуске мы обсудили явление параллакса и применили его для имитации движения сквозь звёзды.

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

Что мы делали для движения сквозь звёзды:

  1. Новые звёзды "рождаются" с любыми координатами x, y, но на самой дальней дистанции z (расстояние вглубь от плоскости экрана).
  2. Все звёзды двигаются нам навстречу, то есть изменяется их координата z.
  3. Звезда удаляется, когда её координата z достигает плоскости экрана или когда её видимые координаты x, y выходят за пределы экрана.
Вообще говоря, если представить, что вы лежите на спине и смотрите вверх, то летящие звезды можно представить как капли дождя, падающие на вас. Но мы займёмся более традиционным представлением дождя.

Чтобы его сделать, нужно изменить всего три параметра:

  1. Новые капли должны рождаться на любой дистанции z и с любой координатой x, но с минимальной координатой y (так как они падают сверху вниз)
  2. Все капли должны двигаться вниз, то есть должна меняться координата y.
  3. Капля удаляется, когда координата y выходит за нижний край экрана

Всё остальное остается таким же, и о чудо – мы уже получили дождь. Но не совсем. Если оставить его как есть, капли будут выглядеть белой крупой. Чтобы придать реалистичности, я делаю из капель струи. То есть вместо точки рисуется линия, и эта линия тем длиннее, чем быстрее движется капля. Также я настроил максимальную глубину z – она стала гораздо меньше, чем для звезд, потому что обычно мы не видим капли дождя слишком далеко. Увеличил скорость движения. И кроме того, чтобы придать большей достоверности, добавил ускорение для капель. Ведь они падают вниз под действием силы притяжения, и значит, должны увеличивать свою скорость. Это не очень заметный эффект, но думаю, что с ним немного лучше.

Вот что получилось: смотрите по ссылке прямо в браузере.

Эффект дождя можно улучшить, добавив, например, порывы ветра. Для этого нужно двигать капли по горизонтали, то есть менять координату x.

Это мы сделаем в следующей части, но не для дождя, а для снега.

Другие материалы: