Когда я экспериментировал с подобными вещами (конец 1990-х годов), я читал некоторые статьи и книги, чтобы узнать о потоке воды, но я не вел записи о том, на какие из них я смотрел. Я закончил тем, что делал свое дело, потому что хотел справиться с эрозией. Я хотел, чтобы реки производили каньоны и поймы. Я хотел, чтобы водохранилища плотины наполнились осадком. Я хотел, чтобы реки производили такие эффекты, как блуждающие и волнистые озера. Я хотел каналы для орошения и водозабора. Я хотел, чтобы наводнения повредили фермы и дома в поймах.
Я сохранил некоторые заметки (ссылки) в разделе географии этой страницы . Есть бумага Jos Stam, которую нужно прочитать. К сожалению, я никогда не организовывал заметки. Кроме того, к сожалению, игра была для OS / 2, поэтому я не могу легко дать вам исполняемый исполняемый файл для игры. И, к сожалению, мой код ужасен, но если вы хотите посмотреть, посмотрите water.cpp в исходном коде (zip).
Вещи, с которыми я играл в моей симуляции (не все реалистично):
- Районы около рек имеют влажную почву; районы вдали от рек имеют сухую почву. Влага влияет на растительность. Растительность замедляет течение воды.
- Дождь создает воду во всех местах, иногда. Затем он течет вниз. Затем он испаряется и поглощается землей. Дождь изрезает русло реки.
- Источники создают воду постоянно, но только в нескольких местах. Источники поддерживают заполненные речные каналы. Я не имитировал слои горных пород или подземных вод; Я просто случайно расположил источники в горах.
- Текущая вода имеет импульс. Если я правильно помню, это было важно для того, чтобы сделать реки извилистыми.
- Быстро движущаяся вода собирает осадок; медленно движущиеся отложения воды отстают от него. Это вырезает речные долины.
- Во время первоначального создания карты я ускорил поток воды и эрозию; во время игры он бегал с нормальной скоростью.
В целом, мой опыт заключался в том, что со всем этим было довольно весело играть, но для его работы потребовалось много эвристик и настроек. Я никогда не доходил до точки, где я мог бы сказать, что создание реки было естественным и неизбежным без настройки. Это было так весело (и как программист, и как игрок), что я потратил на это годы и никогда не заканчивал остальную часть игры. :)