Вы видите копию треда, сохраненную 25 марта 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Я делаю опенсорсный симулятор эрозии (пики) и у меня затык с физикой круговорота воды в природе. Нужна помощь. уровня 11 класса Если хочешь помочь сделать реалистичный симулятор - добро пожаловать в тред
Конкретно, сейчас хотел сделать реалистичный дождь.
Формула верная? Выпавший дождь (в килограммах) = константа x t x t x (1.0 - относительнаяВлажность)
t в кельвинах?
Нет, формула неверная. t в кельвинах это крайне хуёвая замена влиянию солнечной радиации.
И потом, какой именно "реалистичный дождь" тебе нужен? Чтобы он выпадал в реалистичном объёме, в реалистичное время или в реалистичных местах?
>Выпавший дождь (в килограммах) = константа x t x t x (1.0 - относительнаяВлажность)
1) С чего вообще такая формула?
2) Относительная влажность чего? Многокилометрового столба над единицой площади?
3) В килограммах на что? На метр квадратный?
4) Откуда вторая степень температуры? Вода обычно конденсируется при 100% влажности, какая бы температура ни была. Это уже максимальная влажность зависит от температуры (причем не факт, что как простая функция, гугли таблицы)
5) Т.к. в облаках вода уже частично сконденсирована (в микрокапли), осадки начинают выпадать, когда сила трения капель о восходящие потоки воздуха становится меньше силы тяжести для капли + понижается температура облака и начинаяется доп. конденсация.
Это в общих чертах. Я хз как вообще что-то в метеорологии можно точно рассчитать через физику, так что лучше просто нарыть много таблиц по осадкам и подогнать для них функцию.
>Нет, формула неверная. t в кельвинах это крайне хуёвая замена влиянию солнечной радиации.
Спасибо что откликнулся.
Солнечная радиация у меня отдельно считается, пока не об этом. Вот уже есть некая температрура атмосферы в точке i, а также известна высота атмосферы в данной точке (условная высота - минус высота гор) и есть масса водяного пара.
Нужно узнать, какая часть этого пара является лишней (перенасыщено). Соответственно, эта часть упадет вниз в виде воды. Вот я так как то думал.
>>151
>Чтобы он выпадал в реалистичном объёме, в реалистичное время или в реалистичных местах?
Нужен объем и место, время симулировать не получится т.к. тик симуляции скорее всего не совпадает с временем ИРЛ
>1) С чего вообще такая формула?
Нашел у себя где то в старом проекте. Вероятно, упрощал что-то для расчетов
>>152
>2) Относительная влажность чего? Многокилометрового столба над единицой площади?
Да, влажность воздуха. Если больше 100% - идет дождь. Вроде так ИРЛ
>>152
>3) В килограммах на что? На метр квадратный?
Да, я в СИ хочу, что бы не запутаться. Только не на метр а на "точку". Температура и пр. хранятся в виде матрицы 1024х1024 точек.
>>152
>4) Откуда вторая степень температуры? Вода обычно конденсируется при 100% влажности, какая бы температура ни была. Это уже максимальная влажность зависит от температуры (причем не факт, что как простая функция, гугли таблицы)
Хз, нафантазировал может
>>152
> осадки начинают выпадать, когда сила трения капель о восходящие потоки воздуха становится меньше силы тяжести для капли
Вот это уже наверно лишнее для симуляции
>>152
>понижается температура облака и начинаяется доп. конденсация.
Там вроде как высота гор играет роль еще
>>152
>так что лучше просто нарыть много таблиц по осадкам и подогнать для них функцию.
Интересно. Но мне бы посчитать лучше, т.к. расчеты идут на шейдерах и не хочется их усложнять таблицами. Хотя может быть так и лучше
>1) С чего вообще такая формула?
Нашел у себя где то в старом проекте. Вероятно, упрощал что-то для расчетов
>>152
>2) Относительная влажность чего? Многокилометрового столба над единицой площади?
Да, влажность воздуха. Если больше 100% - идет дождь. Вроде так ИРЛ
>>152
>3) В килограммах на что? На метр квадратный?
Да, я в СИ хочу, что бы не запутаться. Только не на метр а на "точку". Температура и пр. хранятся в виде матрицы 1024х1024 точек.
>>152
>4) Откуда вторая степень температуры? Вода обычно конденсируется при 100% влажности, какая бы температура ни была. Это уже максимальная влажность зависит от температуры (причем не факт, что как простая функция, гугли таблицы)
Хз, нафантазировал может
>>152
> осадки начинают выпадать, когда сила трения капель о восходящие потоки воздуха становится меньше силы тяжести для капли
Вот это уже наверно лишнее для симуляции
>>152
>понижается температура облака и начинаяется доп. конденсация.
Там вроде как высота гор играет роль еще
>>152
>так что лучше просто нарыть много таблиц по осадкам и подогнать для них функцию.
Интересно. Но мне бы посчитать лучше, т.к. расчеты идут на шейдерах и не хочется их усложнять таблицами. Хотя может быть так и лучше
> Нужен объем и место
Для этого тебе нужен полноценный симулятор атмосферы с её движением воздушных масс и разницами в атмосферном давлении, в том числе на разной высоте от уровня моря, взаимодействие с подстилающей поверхностью - без правильного просчёта альбедо у тебя некорректно будет вычисляться давление. По хорошему ещё и океанские течения нужно рассчитать.
>Да, влажность воздуха
Ебать ты мочишь.
Утебя воздуха дофига, если что (до облаков километры вверх). Везде влажность разная. А усреднять по всей высоте тут слишком грубо.
>Только не на метр а на "точку".
Ебать ты мочишь.
Площадь твоей "точки" какая? Ты как с реальным миром-то свяжешь?
>Вот это уже наверно лишнее для симуляции
Это для формулы, а недля симуляции.
>расчеты идут на шейдерах
Как-то ты бугристо стелишь. Странные у тебя методы для физических популяций.
Я стараюсь сохранять модель максимально простой, поэтому давление в матрицах не хранится, я полагаю использовать температуру вместо давления. Движение масс уже есть (правда кривое). Альбедо - планируется, как и гринхауз например.
>>156
>По хорошему ещё и океанские течения нужно рассчитать
Течение воды уже есть, но только от высокого- к низкому. Без многоуровневых течений.
>>157
>А усреднять по всей высоте тут слишком грубо
Придется. Лепить хотя бы несколько слоев атмосферы - явный перебор.
Я вообще хотел что то типа sim earth, но с графоном и без эволюции.
Грубо говоря, мне нужно испарение \ конденсация в зависимости от высоты атмосферного столба, температуры и количества пара.
>>157
>Площадь твоей "точки" какая? Ты как с реальным миром-то свяжешь?
Не все ли равно? Там же масса тоже абстрактная- - на точку. Даже не масса а количество, скорее.
>>157
>Как-то ты бугристо стелишь. Странные у тебя методы для физических популяций
Я делал и без шейдеров раньше, но там на 10 000 точках ЦПУ загибается. На видяхе миллион а то и 4-16 миллионов точек тянет.
А так то я нуб и в шейдерах и в симуляции и в физике.
Отходя от реальных величин и так сильно упрощая атмосферу (хотя даже на цпу потоки газа в риалтайме на сетке 1024102464 считать можно, muskaw, вроде, делал (не факт, что на канале есть, но посмотри), ты делаешь симуляцию никому нафиг не нужной, так как она не даст даже в общих чертах напоминающие реальность результаты.
А для ГПУ вроде CUDA и подобное есть. А с шейдерами создаётся впечатление, что какого-то Кирилла из ГД заставили на юнити делать физсим.
>хотя даже на цпу потоки газа в риалтайме на сетке 1024102464
В реалтайме? У меня не получалось. И потом у меня там уже есть 4 слоя земли в симуляции, лава, жидкая вода, и ил растворенный в воде. Еще лед хочу. Атмосфера - это только часть.
>>160
>А с шейдерами создаётся впечатление, что какого-то Кирилла из ГД заставили на юнити делать физсим.
Так ты угадал, я оттуда и пришел. Но некоторые успехи есть. Да и работаю добровольно. Да и шейдерах таки быстрее. Хотя и жутко не удобно
Раз все упирается в производительность, вопрос не к физикам.
Можешь, конечно, подождать, пока кто-то умнее меня не увидит тред и не порешает все простым, но точным приближением, я же не знаю, как тебе помочь, кроме как пилить нормальную атмосферу (хоть что-то похожее на неё).
Можешь глянуть этого товарища для вдохновления:
Muzkaw
https://youtu.be/baMFS4qVnjk
> от высокого- к низкому
Это приливы-отливы штоле?
Многоуровневые течения не так важны, основную роль играет верхний слой, напрямую взаимодействующий с атмосферой, глубинные при желании можно наверное какими-нибудь костылями заменить. Но для реалистичного выпадения осадков опять-таки нужны настоящие течения, а для них - просчёт давления, температуры и т.д.
Он, кажется, на стриме пилил 1024 на 1024 на что-то. Пруфов пока не будет.
Таки вопрос к знатокам: правильная ли это формула для рассчета количества испарившийся воды: _EvaporateConstant x t x (1.0 - rHumidity)
где _EvaporateConstant =3e-06, t - температура воды в кельвинах, rHumidity - относительная влажность. Площадь ==1, ветер учитывается путем расчета перемещения облаков.
>рассчета количества испарившийся воды
Вообще, или за единицу времени?
В первом случае - нет, во втором - нет.
http://meteorologist.ru/formula-isparyaemosti-ivanova.html
Только вот
1) Формула эмпирическая и точнее работает на больших промежутках времени (месяцы).
2) Хрен ты эту формулу применишь, пока, наконец, не приведешь свои внутренние единицы к реальным (не установишь в [м^2] площадь ячейки сетки, не установишь в [с] время одной итерации и т.д. для всех величин). Это, опять же, потому, что формула не теоретическая и работает только для одной системы единиц.
Насчет точек: у тебя, похоже, что-то типа градиента считается. А градиент равен нулю в точках локального максимума. Там у тебя дождь и выпадает.
А вообще, странно таким методом места выпадения искать. Пар ведь не по поверхности в горы поднимается.
>Вообще, или за единицу времени?
>В первом случае - нет, во втором - нет.
За единицу времени (1 тик который может быть равен 1 дню, допустим)
>>347
Спасибо. Правда, меня эта формула еще больше запутала. Как они ею пользуются для своих реальных случаев, где площадь не равна 1? Но хотя бы буду знать испарение пропорционально таки квадрату температуры.
>>347
>Хрен ты эту формулу применишь, пока, наконец, не приведешь свои внутренние единицы к реальным (не установишь в [м^2] площадь ячейки сетки, не установишь в [с] время одной итерации и т.д. для всех величин). Это, опять же, потому, что формула не теоретическая и работает только для одной системы единиц.
Я могу допустить что высота в симуляции - в километрах, площадь ячейки, допустим, 1км х 1км
>>348
>Насчет точек: у тебя, похоже, что-то типа градиента считается. А градиент равен нулю в точках локального максимума. Там у тебя дождь и выпадает.
Там тупо где влажность больше 100% - выпадает все что больше 100%
>>348
>А вообще, странно таким методом места выпадения искать. Пар ведь не по поверхности в горы поднимается
Пар у меня не по поверхности поднимается, просто визуализация кривая. Так то у пара всегда постоянная высота.
Я исхожу из того что в горах холоднее, следовательно ниже давление, вот туда воздух и движется.
Алсо, есть релиз для Windows, если интересно - это старая версия, без атмосферы: https://github.com/Nashet/Interactive-Erosion/releases
>Вообще, или за единицу времени?
>В первом случае - нет, во втором - нет.
За единицу времени (1 тик который может быть равен 1 дню, допустим)
>>347
Спасибо. Правда, меня эта формула еще больше запутала. Как они ею пользуются для своих реальных случаев, где площадь не равна 1? Но хотя бы буду знать испарение пропорционально таки квадрату температуры.
>>347
>Хрен ты эту формулу применишь, пока, наконец, не приведешь свои внутренние единицы к реальным (не установишь в [м^2] площадь ячейки сетки, не установишь в [с] время одной итерации и т.д. для всех величин). Это, опять же, потому, что формула не теоретическая и работает только для одной системы единиц.
Я могу допустить что высота в симуляции - в километрах, площадь ячейки, допустим, 1км х 1км
>>348
>Насчет точек: у тебя, похоже, что-то типа градиента считается. А градиент равен нулю в точках локального максимума. Там у тебя дождь и выпадает.
Там тупо где влажность больше 100% - выпадает все что больше 100%
>>348
>А вообще, странно таким методом места выпадения искать. Пар ведь не по поверхности в горы поднимается
Пар у меня не по поверхности поднимается, просто визуализация кривая. Так то у пара всегда постоянная высота.
Я исхожу из того что в горах холоднее, следовательно ниже давление, вот туда воздух и движется.
Алсо, есть релиз для Windows, если интересно - это старая версия, без атмосферы: https://github.com/Nashet/Interactive-Erosion/releases
>испарение пропорционально таки квадрату температуры.
Неправда. Там температура в цельсиях, а у тебя в кельвинах. Нули разные. Да и таки не квадрату, а квадрату суммы t и некой константы (в нашем случае - 25). Это важно.
>Я могу допустить что высота в симуляции - в километрах, площадь ячейки, допустим, 1км х 1км
Тогда внимательно прочитай, в каких единицах формула дает результат (в мм уровня воды за месяц) и переведи в свои.
Плюс установи время итерации (одного вычисления).
>Я исхожу из того что в горах холоднее
Холоднее, чем что? Чем на той же высоте над уровнем моря, но не в горах? Это неправда.
>Там тупо где влажность больше 100% - выпадает все что больше 100%
Так я тебе и говорю, что раз пар идет в одну точку, то там все и выпадает.
>Неправда. Там температура в цельсиях, а у тебя в кельвинах. Нули разные. Да и таки не квадрату, а квадрату суммы t и некой константы (в нашем случае - 25). Это важно.
Спасибо.
>>355
>Холоднее, чем что? Чем на той же высоте над уровнем моря, но не в горах? Это неправда
А если, для упрощения, предположить что пар распределен равномерно по столбу атмосферы, то можно будет сказать что средняя (по высоте) температура пара в горах ниже? За счет того например что толщина атмосферы в горах меньше и, следовательно, меньше поглощение солнечного тепла.
>За счет того например что толщина атмосферы в горах меньше и, следовательно, меньше поглощение солнечного тепла.
Неправда. Воздуха, может, и меньше, зато земля ближе. А земля солнцем прогревается гораздо лучше воздуха (пока снег не учитываем). Так что в горах даже теплее, чем на той же абсолютной высоте над низменностями, ведь горы нагреваются от солнца и отдают тепло ближайшему воздуху.
>то можно будет сказать что средняя (по высоте) температура пара в горах ниже?
Ты усредняешь там, где этого делать нельзя. Вспоминается один анекдот:
Если положить человека ногами в кипяток, а головой на мороз, то в среднем будет комнатная температура.
А вообще, все это глупо, ведь различные потоки в атмосфере влияют на погоду гораздо сильнее, чем локальные нагревы и испарения. Также очень сильно влияние океанов и морей. Испарение с их поверхностей гораздо масштабнее, чем с твоих ручейков.
Я бы на твоем месте вообще бы убрал испарение (если только у тебя нет водоёма на две трети карты) и считал, что осадки - внешний фактор, а облака формируются за картой.
>Неправда. Воздуха, может, и меньше, зато земля ближе. А земля солнцем прогревается гораздо лучше воздуха (пока снег не учитываем). Так что в горах даже теплее, чем на той же абсолютной высоте над низменностями, ведь горы нагреваются от солнца и отдают тепло ближайшему воздуху.
Окай, тогда почему и куда движется водяной пар после испарения?
>>364
>Я бы на твоем месте вообще бы убрал испарение
Нельзя, испарение играет важную орль в эрозии - вода испаряется, ил выпадает в осадок, уничтожая таким образом бессточные водоемы или превращая их в протоки
>>364
>а облака формируются за картой.
Рандом - не нужен. Разве что слать одинаковую стену облаков...
Еще есть проблема с масштабом. Я вообще хотел симулировать целую планету, но при размере матрицы в миллион ячеек на реки не хватает разрешения.. Можно поднять разрешение но тогда будут или тормоза или не риалтайм...
>Окай, тогда почему и куда движется водяной пар после испарения?
Это можно узнать, ТОЛЬКО нормально (или хотя бы почти нормально) симулируюя атмосферу. Здесь нет никаких простых правил по типу "пар летит в горы". Тебе надо это понять и смириться.
>Нельзя, испарение играет важную орль в эрозии - вода испаряется, ил выпадает в осадок, уничтожая таким образом бессточные водоемы или превращая их в протоки
Я не про это. Сделай просто испарение в никуда, ведь вклад пара от твоих ручейков и луж реально ничтожный по сравнению с вкладом от морей.
Точнее, так было, пока ты не сделал ячейку 1км x 1км (если смотреть по пропорции "сторона квадрата поля / высота гор", это слишком много).
Это могло бы
1) Сильно упростить тебе жизнь
2) Помочь избежать таких нереалистичных ситуаций, которые у тебя появляются.
>Рандом - не нужен. Разве что слать одинаковую стену облаков...
Это не чистый рандом, это - климат. Просто еще одна группа параметров карты, которые можно регулировать.
Да и без рандома ты и сейчас обходиться не можешь, будем честными. Твой квадрат земли же не изолирован от окружающего мира.
>Еще есть проблема с масштабом. Я вообще хотел симулировать целую планету, но при размере матрицы в миллион ячеек на реки не хватает разрешения.. Можно поднять разрешение но тогда будут или тормоза или не риалтайм...
Если уж делать планету, то без нормальной (хотя и усредненной) симуляции атмосферы никак, да океанические течения придется считать. А еще поверхность - сфера, а не прямоугольник.
>>427
>Рандом - не нужен. Разве что слать одинаковую стену облаков...
Тут могу добавить вот еще что: облака могут генериться рандомом, но место, где они будут лить дождь, совершенно не случайно и зависит от рельефа.
Цитата:
Выпадение осадков в горах в большей мере обязано барьерному эффекту рельефа. Под влиянием горных барьеров происходит восходящее движение воздушных масс, усиливается конденсация влаги и количество осадков начинает возрастать.
Горные хребты, воздействуя на воздушные течения, препятствуют или совершенно преграждают им путь, создают эффекты наветренности. На склонах, обращенных к господствующим ветрам с океана, воздух упирается в горы, поднимается вверх и охлаждается. Избыток влаги выпадает в виде осадков.
Горы создают препятствие свободному распространению воздушных потоков. Потоки тормозятся и огибают горы. При этом столкновений частичек водяных паров намного больше, чем при обычном их перемещении. Сталкиваясь, они слипаются, а крупные капли уже выпадают вниз в виде дождя.
Вы видите копию треда, сохраненную 25 марта 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.