El artículo de Maxime Heckel explora cómo renderizar el cielo y las atmósfera de manera realista usando shaders en el navegador. El autor busca recrear la belleza visual del espacio visto desde laEEI durante el atardecer, donde la atmósfera terrestre muestra colores que van del naranja al azul antes de desvanecerse en el negro del espacio. Para lograr un efecto realista, no basta con aplicar un gradiente azul de fondo; es necesario tratar el cielo como el resultado de la interacción de la luz con el aire y sus componentes, considerando variables como la altitud del observador, la cantidad de polvo, la hora del día, todo en un volumen. El método principal para muestrear la atmósfera es el raymarching, donde se lanzan rayos desde la cámara y se avanza por el medio transparente para calcular dos conceptos clave: la transmitancia (cuánta luz sobrevive al atravesar la atmósfera) y el scattering (cuánta luz se redirige hacia la cámara). La densidad Rayleigh modela cuánto aire hay a una altitud determinada, siendo la atmósfera más delgada cuanto mayor es la altura. Mediante la Ley de Beer se calcula la transmitancia, y la función de fase de Rayleigh determina cómo se distribuye la luz según el ángulo entre los rayos solares y la vista. El resultado es que las longitudes de onda cortas (azul) se dispersan más que las largas (rojo), explicando por qué el cielo es azul durante el día. Además del scattering Rayleigh, existen el scattering Mie (para partículas más grandes como polvo y aerosoles) y la absorción de ozono (que elimina ciertas longitudes de onda). El artículo continúa explorando cómo adaptar estos efectos para renderizar una atmósfera completa alrededor de un planeta y técnicas más performant es usando LUTs.
Cómo renderizar cielos realistas con shaders en el navegador
