En el desarrollo de 'Around The World', un juego centrado en la exploración marítima, Thomas ten Cate ha estado perfeccionando la fidelidad visual del cielo y las nubes. Un desafío principal consistió en simular cómo interactúa la luz con las nubes. Utilizando una tabla de búsqueda (LUT) del renderizador Povray, ten Cate descubrió inicialmente que las nubes carecían del brillo adecuado en su base. Sospechó que Povray no simulaba la dispersión múltiple —donde la luz rebota entre las partículas varias veces— y confirmó esto escribiendo un trazador de rayos Monte Carlo recursivo multihilo personalizado en Rust. Los nuevos datos mostraron que, con la dispersión múltiple, la luz se distribuye de manera más uniforme, eliminando un aspecto 'metálico' y haciendo que las bases de las nubes parezcan significativamente más brillantes y suaves.

Un renderizado de nubes utilizando una tabla de búsqueda antigua que muestra una apariencia metálica.
Nubes renderizadas con la tabla de búsqueda original, que carecía de una dispersión múltiple adecuada.frozenfractal.com

Esta imagen ilustra el desafío inicial donde las nubes carecían del brillo adecuado y tenían un aspecto 'metálico' debido a la falta de simulación de dispersión múltiple.

Un renderizado de nubes en el motor de juegos con datos de iluminación actualizados.
Nubes renderizadas con los nuevos datos, mostrando una distribución de luz más uniforme y bases más suaves.frozenfractal.com

Esta imagen demuestra la mejora tras implementar un trazador de rayos Monte Carlo recursivo multihilo personalizado para simular la dispersión múltiple.

Para lograr una coloración realista, ten Cate abordó cómo las nubes reciben luz indirecta del cielo circundante. En el motor de juegos Godot, la luz indirecta se suele muestrear a partir de mapas cúbicos de entorno basados en la normal de una superficie. Sin embargo, para las nubes, una normal apuntando hacia abajo (hacia el suelo) resulta en poca luz indirecta en la base. Al ajustar las normales para que apunten hacia arriba, hacia el cielo, las nubes comenzaron a adoptar un tono azulado de la atmósfera. Esto también mejoró el renderizado del atardecer; al mezclar la luz solar directa roja con la luz del cielo indirecta azul, las nubes lograron un tono rosado que refleja con mayor precisión las condiciones atmosféricas del mundo real.

También se emplearon varios 'trucos' técnicos para corregir artefactos de renderizado. Para solucionar un horizonte amarillento poco natural causado por el orden de las operaciones en el raymarching (donde la dispersión hacia afuera se aplicaba antes que la dispersión hacia adentro), ten Cate invirtió la secuencia para reducir la atenuación excesiva. Además, debido a que el planeta del juego es 75 veces más pequeño que la Tierra, el horizonte se curva de forma más pronunciada, lo que causaba que el shader del cielo creara una banda oscura donde la densidad de la atmósfera parecía aumentar hacia el centro del planeta. Corrigió esto añadiendo un pequeño valor al componente vertical del vector de vista global antes de renormalizarlo, 'tirando' efectivamente del cielo hacia abajo para alinearlo con el horizonte físico. Finalmente, implementó un mapeador de tonos Filmic con un punto blanco de 2.0 para gestionar los valores de alto rango dinámico (HDR), asegurando que las nubes se desvanezcan suavemente en la distancia sin saturarse en exceso.

Un cielo azul que se desvanece en una banda amarilla distintiva cerca del horizonte.
Un ejemplo del horizonte amarillento poco natural causado por el orden incorrecto de las operaciones de raymarching.frozenfractal.com

Esta imagen representa el artefacto de renderizado causado por aplicar la dispersión hacia afuera antes que la dispersión hacia adentro en la secuencia de raymarching.

Un cielo azul que se desvanece en un tono blanquecino cerca del horizonte.
El horizonte corregido tras invertir la secuencia de raymarching para reducir la atenuación excesiva.frozenfractal.com

Esta imagen muestra la corrección del artefacto del horizonte amarillo mediante el ajuste del orden de las operaciones en el raymarching.

Una escena con el sol bajo en el cielo y un parche sólido de amarillo pálido en el cielo.
Una escena que muestra el cielo antes de la implementación del mapeador de tonos Filmic.frozenfractal.com

Esta imagen ilustra los problemas de alto rango dinámico antes de que se utilizara el mapeador de tonos Filmic para gestionar los valores HDR.

Una escena con el sol bajo en el cielo y un degradado suave cerca del horizonte.
El resultado final utilizando un mapeador de tonos Filmic para asegurar transiciones suaves en la distancia.frozenfractal.com

Esta imagen demuestra el resultado final del mapeador de tonos Filmic, asegurando que las nubes se desvanezcan suavemente sin saturarse.