Προσομοίωση σκέδασης φωτός στα σύννεφα

Η αρχική προσέγγιση με τη χρήση του POV-Ray για τη δημιουργία lookup tables (LUT) αποδείχθηκε ανεπαρκής, καθώς δεν προσομοίωνε ικανοποιητικά την πολλαπλή σκέδαση (multiple scattering). Ο δημιουργός υλοποίησε έναν multithreaded recursive Monte Carlo ray tracer σε Rust, επιβεβαιώνοντας ότι η πολλαπλή σκέδαση είναι κρίσιμη για τη φωτεινότητα των νεφών. Η μετάβαση σε αυτό το μοντέλο εξάλειψε τη μεταλλική όψη των νεφών, προσφέροντας πιο φυσική διασπορά του φωτός.

Τεχνικές ατμοσφαιρικής απόδοσης και normal bending

Για την ενσωμάτωση των νεφών στο περιβάλλον του Godot, εφαρμόστηκε μια τεχνική παραμόρφωσης των normals (normal bending). Κατευθύνοντας τα normals προς τα πάνω, τα σύννεφα «δανείζονται» έμμεσο φωτισμό από τον ουρανό, αποκτώντας μια μπλε απόχρωση που τα εντάσσει ομαλά στο σκηνικό. Κατά τη διάρκεια του ηλιοβασιλέματος, η ανάμειξη του άμεσου πορτοκαλί φωτός με το έμμεσο μπλε φως του ουρανού παράγει φυσικές ροζ αποχρώσεις.

Διορθώσεις στο ray marching και τον ορίζοντα

Η εμφάνιση κίτρινων αποχρώσεων στον ορίζοντα, ακόμη και με τον ήλιο στο ζενίθ, αντιμετωπίστηκε με την αντιστροφή της σειράς των πράξεων στο ray marching: η εξασθένηση (attenuation) μέσω outscattering προηγείται πλέον της πρόσθεσης του inscattered φωτός. Επιπλέον, για να αντισταθμιστεί η διαφορά στην κλίμακα του πλανήτη σε σχέση με τη Γη, εφαρμόστηκε ένα γεωμετρικό hack στον view vector, το οποίο «τραβάει» τον ουρανό προς τα κάτω, εξαλείφοντας τις ανεπιθύμητες σκοτεινές ζώνες στον ορίζοντα.

Διαχείριση HDR και tone mapping

Η επιλογή του κατάλληλου tone mapper ήταν καθοριστική για την αποφυγή του clipping στα φωτεινά σημεία. Μετά από δοκιμές, ο Filmic tone mapper με white point στο 2.0 προσέφερε την καλύτερη ισορροπία μεταξύ αντίθεσης και λεπτομέρειας, επιτρέποντας στα σύννεφα να σβήνουν ομαλά στον ορίζοντα χωρίς να χάνεται η χρωματική τους πληροφορία.