Вы можете закрепить значения в допустимом диапазоне (например, максимально допустимое осаждение в области с температурой 0 ° C составляет 100 см).
Вы можете сделать это во время самого алгоритма шума, а не только после завершения всего поля значений. Я бы предположил, что это будет работать следующим образом:
- Сначала создайте карту температуры.
- Когда вы генерируете каждое случайное значение для дождя, генерируйте значение в диапазоне, соответствующим уменьшенному диапазону значений, допустимых по температурной карте.
Пример: Если будет генерировать случайное значение в диапазоне 0 - 250 мм (около 50% от максимально возможного количества осадков, для одного из слоев низких частот шума), обратите внимание на температуру в этом пикселе, видеть, что это 10 ° C, поэтому диапазон случайного значения будет уменьшен до 0-100 мм (50% от 0-200 мм, допускаемого этой температурой).
Поэтому, даже если вы катите максимальное случайное значение для каждого из слоев, составное значение будет ограничено максимальным значением, заданным температурой.
Я не знаю, насколько это реалистично и насколько важен реализм для вас. Что именно предотвращает большие осадки от низких температур? Решение, которое я предложил, может довольно эффективно имитировать такие факторы, как уменьшение испарения в низкотемпературных зонах.
EDIT:
Еще одна идея, которая может в конечном итоге эквивалентно моему первому решению:
- Сформировать как карту температуры и карта осадков независимо друг от друга.
- Умножить карту осадков по температурной карте (масштабируется до диапазона < 0, 1>). Это уменьшит количество осадков в районах с низкой температурой.
Самое простое решение - просто перезапустить шум Perlin (со слегка измененными значениями, очевидно) в любое время, когда вы не попали на карту. Не уверен, что это будет делать с вашим общим распределением очков. И это может занять некоторое время, чтобы выбраться из этой «плохой» области. –
Да, самая безопасная вещь - просто отказаться от любых результатов, которые выходят за пределы допустимой области. – StilesCrisis