Алгоритм создания эффекта дождя / капли воды? - PullRequest
5 голосов
/ 22 июня 2010

Каков принцип создания эффекта дождя или капель воды независимо от использования какого-либо конкретного языка. Я видел несколько впечатляющих эффектов дождя и воды, выполненных во Flash, но как это на самом деле работает?

Пример эффекта дождя

Пример эффекта капли дождя

Ответы [ 5 ]

3 голосов
/ 22 июня 2010

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

2 голосов
/ 23 июня 2010

Вы задаете вопрос, как если бы эти два примера были связаны, но на самом деле вы

1) имитируете капли дождя, видимые в воздухе (следы падений; просто, но реализм очень сильно зависит от освещения)

для этого вы должны смоделировать следующие события:

for each time step:
    create new drops
    move existing drops vertically down
    remove (or/and animate) the drops hitting the ground

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

2), имитирующие всплеск волн (имитация воды, и в примере показана отражающая поверхность)

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

ПРИМЕЧАНИЯ. Есть много вещей, которые определяют реализм, но в основном это сводится к деталям.Например, дождь обычно виден четко только в странных условиях освещения - вблизи ламп или на контрастном фоне.В противном случае это довольно уныло.

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

Другой пример -если вы посмотрите на этот учебник , который не совсем реалистичен, но иллюстрирует одну точку, вы увидите, что даже если дождь больше похож на снег, он демонстрирует «плоскостность» вашего первого примера (который не имеет глубины).

Итак, все дело в деталях.

Попробуйте смоделировать то, что у вас есть, с точки зрения событий, которые вы должны смоделировать, а затем решите смоделировать каждое из них в отдельности -Например, использование фракталов для посева дождя может быть излишним, но если вы хорошо смоделируете свою работу, вы начинаете со случайного посева, а затем заменяете более точными / сложными методами.

1 голос
/ 22 июня 2010

Второй (пример эффекта капли дождя), вероятно, выполняется с помощью волнового уравнения simulator

1 голос
/ 22 июня 2010

Старый школьный способ, который очень дешев, - это использовать велосипедную палитру.По сути, вы устанавливаете линейку цветов и перемещаете один цвет в другой через фиксированные интервалы.Движущиеся цвета создают иллюзию движения.Я работал над играми, в которых дождь, ветер, снег, водопады, огонь и т. Д. Были анимированы с помощью палитры.Это умирающее искусство, но оно все еще работает.:)

1 голос
/ 22 июня 2010

Они, вероятно, используют эффекты частиц * в основном 1002 *.

...