Implémentation d'une mer de nuages en reprenant notamment un article de Guerrilla Games sur le sujet (lien) sur le sujet.
L'effet est calculé en post-traitement et bloqué par le Zbuffer de la scène pour "envelopper" la géométrie. Le but est de se propager au sein d'un volume hétérogène procédural, sculpté en forme de plan, en accumulant la lumière du soleil et la baisse progressive de visibilité au sein du nuage.
Le volume hétérogène est généré grâce à une fonction de bruit rapide basée sur une table de correspondance, beaucoup plus rapide que le bruit simplex de Perlin. Pour améliorer les performances, la table de correspondance est de petite taille pour maximiser les performances du cache de texture du GPU. Une ombre projetée est également utilisée par l'effet pour faire apparaître l'ombre du chateau sur les nuages et renforcer l'illusion qu'ils font partie de la scène. Le chateau provient du jeu Spyro 2 sur PS1.
La fonction de bruit et le générateur de table de correspondance associé sont basés sur les nombreuses implémentations de volume en temps réel de Shadertoy, notamment celle d'Inigo Quilez.
Une salle mystérieuse dans laquel se trouve un trou noir qui déforme le chemin de la lumière, produisant des distorsions extrêmement déroutantes :
L'effet est obtenu en ajoutant une gestion de la gravité dans l'algorithme de raymarching, pour courber les rayons de vue pendant la propagation.
Le niveau est défini à l'aide d'une texture de distance euclydienne précalculée :