Алгоритм для создания эффекта дождя / водные отбрасывания?

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

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

Пример эффекта воды отбрасывания дождя

5
задан Sahat Yalkabov 22 June 2010 в 18:19
поделиться

5 ответов

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

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

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

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

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

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

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

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

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

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

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

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

2
ответ дан 14 December 2019 в 04:30
поделиться

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

3
ответ дан 14 December 2019 в 04:30
поделиться

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

1
ответ дан 14 December 2019 в 04:30
поделиться

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

1
ответ дан 14 December 2019 в 04:30
поделиться

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

1
ответ дан 14 December 2019 в 04:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: