nabbla (nabbla1) wrote,
nabbla
nabbla1

Categories:

Цвет неба на других планетах

Еще одна моя программка, разработка которой косвенно была связана с работой, но по большей части я ее делал дома, в качестве хобби.

На рисунке - отрендеренная картинка с этой программы: облака - это стохастические фракталы, а цвета вычисляются через спектр Солнца, релеевское рассеяние в атмосфере, поглощение озоном, углекислым газом и водяными парами.


Затянутое облаками небо:

Закат:



Небо под звездой класса O (атмосфера как на Земле):





Программа еще очень сырая, причем есть две версии, каждая из которых имеет свои достоинства и недостатки.

Версия 0.03 считает или релеевское рассеяние, или по произвольной функции (которую надо самостоятельно ввести, возможно, применяя ImageGraph2Txt), в пространственные распределения не лезет, т.е считает примерно для случая, когда Солнце в зените. Никаких закатов показать она не может. Даже цвет самой звезды после прохождения через атмосферу сказать не может. Круг одного цвета на фоне прямоугольника другого цвета, никаких фрактальных облаков, ничего.


Версия 0.33 - куда более навороченная, там можно ввести несколько светил, указать их положение на небе, задать их угловой размер и видимую звездную величину. Очень точная модель атмосферы, сходной с земной: релеевское рассеяние и рассеяние Ми на аэрозолях (параметр "затуманенность" (turbidity) задает, во сколько раз полное рассеяние превышает релеевскую компоненту), поглощение озоном, углекислым газом и водяными парами. Введено понятие атмосферной массы, благодаря чему при разном положении светил у них получается разный цвет - желтое (почти белое) солнце в зените и багровое на закате. Применена приближенная численная модель атмосферы, где для каждого положения светила получается свое распределение яркости и цветности по небесному склону. Фрактальные облака. Зачаточная модель дифракции и разные варианты экспозиции, параметр экспокоррекции.



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

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

Посмотреть описание версии 0.33, историю изменений, а также скачать исходные коды можно на https://github.com/nabbla/Xenosky


Tags: imagegraph2txt, математика, моделирование, программки, солнечная энергия
Subscribe

  • Тестируем atan1 на QuatCore

    Пора уже перебираться на "железо" потихоньку. Решил начать с самого первого алгоритма, поскольку он уже был написан на ассемблере. В программу внёс…

  • Формулы приведения, что б их... (и atan на ТРЁХ умножениях)

    Формулу арктангенса на 4 умножениях ещё немножко оптимизировал с помощью алгоритма Ремеза: Ошибка уменьшилась с 4,9 до 4,65 угловой секунды, и…

  • Алгоритм Ремеза в экселе

    Вот и до него руки дошли, причина станет ясна в следующем посте. Изучать чужие библиотеки было лениво (в том же BOOSTе сам чёрт ногу сломит), писать…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded 

  • 4 comments