Обычный градиент на фоне никогда не даст реалистичного неба. Чтобы добиться достоверной картинки в браузере, атмосферу вычисляют как объемную среду. В материале Максима Хекеля разобран процесс создания шейдера для рендеринга неба и планет. В основе лежат алгоритм raymarching и физические модели рассеяния света.
Алгоритм пускает лучи от камеры и собирает данные о плотности среды. Функция Рэлея определяет количество воздуха на заданной высоте. Затем вычисляется transmittance — доля света, прошедшая сквозь газ без потерь. Здесь применяется закон Бера. Короткие волны рассеиваются сильнее длинных. Поэтому на низких высотах накапливается синий цвет, формируя привычное дневное небо.
Для точной симуляции заката или орбитального вида добавляются новые переменные. Это рассеяние Ми для пыли и поглощение света озоновым слоем. Тяжелые вычисления оптимизируются через подход на основе LUT от Себастьяна Иллера. Результат оформляется как эффект постобработки. Он работает в реальном времени и генерирует физически корректную атмосферу.
Поделиться:
Трехуровневая система дизайн-токенов в VK Tech: прямой экспорт из Figma в GitLab →
Вакансия: UX/UI Artist в мобильный шутер WELTKRIEG 1: Firestorm →