आधुनिक गेम्स में वॉल्यूमेट्रिक बादल और मौसम के प्रभाव
लेखक Oleg Sidorkin, Cinevva के CTO और सह-संस्थापक

कुछ हफ़्ते पहले मैंने उन रेंडरिंग तकनीकों के बारे में लिखा था जो आधुनिक AAA गेम्स असल में शिप करते हैं। एक क्षेत्र जिस पर मैंने हल्का छुआ था वह था आसमान और मौसम, क्योंकि यह अपनी अलग सूची का हकदार है। बादल, कोहरा, बारिश और बर्फ वे सिस्टम हैं जो एक terrain डेमो को एक जगह में बदल देते हैं। ये दिखने से ज़्यादा कोड आपस में साझा करते हैं। वॉल्यूमेट्रिक बादल, ज़मीनी कोहरा और god rays सब एक ही ray-march हैं। गीली सड़कें, बर्फ का जमाव और पैरों के निशान सब एक ही displacement प्लस PBR ट्रिक हैं। हवा एक दिशा वेक्टर है जिसे सीन की हर चीज़ पढ़ती है।
यहाँ 2026 में बड़े स्टूडियो इस सामग्री को कैसे बनाते हैं, इसका एक छोटा और मतवाला दौरा है, हर हिस्से के पीछे के पेपर और engine टॉक्स के साथ।
1. Physically based आसमान और वातावरण
Atmospheric scattering ही बुनियाद है। आसमान का रंग, क्षितिज की धुंध, दूर के पहाड़ों का नीला पड़ना, सूर्यास्त का नारंगी रंग, ये सब हवा से होकर रोशनी के scatter होने से आते हैं। आधुनिक engine इसे physics से कैलकुलेट करते हैं: नीले रंग के लिए Rayleigh scattering, सूरज के आसपास की धुंध के लिए Mie scattering, और zenith पर गहरे बैंगनी रंग के लिए ozone absorption।
मूल 2008 का Bruneton तरीका सब कुछ 4D लुकअप टेबल्स में bake कर देता था, जिससे डायनामिक time-of-day सीमित हो जाता था और कम सूरज के कोणों पर LUT artifacts जुड़ जाते थे। Sébastien Hillaire का 2020 का अपडेट, जो UE5 का Sky Atmosphere कंपोनेंट शिप करता है, उच्च-आयामी LUT की जगह कुछ 2D टेक्सचर और एक multiple-scattering approximation रख देता है जो हर frame पर अपडेट होता है। यह एक फ़ोन से लेकर हाई-एंड PC तक चलता है।

गहराई से पढ़ें:
- Hillaire, A Scalable and Production Ready Sky and Atmosphere Rendering Technique (EGSR 2020, आधुनिक मानक, UE5 में इस्तेमाल होता है)।
- Bruneton and Neyret, Precomputed Atmospheric Scattering (EGSR 2008, मूल LUT तरीका)।
- Bruneton, Precomputed Atmospheric Scattering: a New Implementation (ओपन-सोर्स संदर्भ, ozone और multi-planet सपोर्ट)।
- Epic Games, Sky Atmosphere Component (UE5 डॉक्स)।
2. Perlin-Worley noise के साथ वॉल्यूमेट्रिक बादल
आधुनिक गेम्स में बादलों की बुनियादी तकनीक Andrew Schneider के 2015 के Horizon Zero Dawn टॉक से शुरू हुई। बादल mesh नहीं होते। वे layered noise से बने एक 3D density function होते हैं: एक low-frequency Perlin-Worley मिश्रण बादल का समग्र आकार देता है, और एक higher-frequency Worley noise silhouette को पतले धुँधले किनारों में घिसता है। एक weather map (एक 2D टेक्सचर जिसे world XZ से sample किया जाता है) हर क्षेत्र के लिए coverage, बादल का प्रकार और वर्षा को नियंत्रित करता है। एक height-based gradient ऊँचाई के हिसाब से cumulus, stratus और cirrus प्रोफ़ाइल के बीच ब्लेंड करता है।
रेंडरर कैमरे से बादल वॉल्यूम के बीच से एक ray मार्च करता है, density और scattering इकट्ठा करता हुआ। 2017 के "Nubis" संस्करण ने regional-scale authoring और animation जोड़ा, और मूल PS4 इम्प्लीमेंटेशन पूरे आसमान के लिए लगभग 2 ms में चलता था। आज जो ज़्यादातर स्टूडियो वॉल्यूमेट्रिक बादल शिप करते हैं वे अब भी अपनी विरासत इसी पेपर तक खींचते हैं।

गहराई से पढ़ें:
- Schneider, The Real-Time Volumetric Cloudscapes of Horizon Zero Dawn (SIGGRAPH 2015, प्रामाणिक संदर्भ)।
- Schneider, Nubis: Authoring Real-Time Volumetric Cloudscapes with the Decima Engine (SIGGRAPH 2017, regional-scale फ़ॉलो-अप)।
- Hillaire, Physically Based Sky, Atmosphere and Cloud Rendering in Frostbite (SIGGRAPH 2016, Frostbite संस्करण)।
- Häggström, Real-time rendering of volumetric clouds (एक साफ़, सुलभ थीसिस जिसमें पूरा shader कोड है)।
3. Voxel बादल और Nubis³
Nubis के 2023 के विकास ने 2.5D shape representation को पूरी तरह छोड़कर असली 3D voxels को अपनाया। हर voxel बादल की density सीधे स्टोर करता है, जिससे आर्टिस्ट बादल के आकार को उसी तरह तराश और animate कर सकते हैं जैसे वे terrain गढ़ते हैं। एक घने representation पर जाने की लागत compressed signed distance fields के साथ ray-march acceleration और sparse voxel डेटा के चतुर up-rezzing से वसूल हो जाती है।
नतीजा वह तरह का cloudscape है जिसके बीच से आप उड़ सकते हैं आर-पार बिना अंदरूनी ट्रिक्स को बिखरते देखे। यह ज़्यादातर स्टूडियो के लिए ज़रूरत से ज़्यादा है, पर यही दिशा है जिधर हाई-एंड बढ़ रहा है।

गहराई से पढ़ें:
- Schneider, Nubis³: Methods (and madness) to model and render immersive real-time voxel-based clouds (SIGGRAPH 2023, voxel-cloud टॉक)।
- Schneider, Nubis, Evolved (SIGGRAPH 2022, 2.5D और पूर्ण 3D के बीच का पुल)।
- Schneider, Real-time Volumetrics and VFX (Andrew की निजी साइट, कोर्स नोट्स और ब्रेकडाउन के साथ)।
4. Layered बादल रेंडरिंग और 2D बैकड्रॉप
हर स्टूडियो full-volume बादल वहन नहीं कर सकता, और हर कैमरा कोण को उनकी ज़रूरत नहीं होती। बहुत से गेम्स तकनीकें मिलाते हैं: high-altitude cirrus को एक scrolling 2D layer के रूप में रेंडर करना, mid-altitude cumulus को वॉल्यूमेट्रिक rays के रूप में, और low-altitude stratus को एक पतले participating-media स्लैब के रूप में। क्षितिज को अक्सर एक pre-baked sky cubemap मिलता है जिसमें वॉल्यूमेट्रिक pass एक fade distance के पार ब्लेंड कर देता है।
यही layering बादल बजट को ईमानदार रखती है। पूरी क्वालिटी पर एक अकेला बादल प्रकार 4-6 ms खा सकता है; अलग-अलग बादल ऊँचाइयों के लिए अलग-अलग क्वालिटी layer करना उसी लुक को आधी लागत पर रोक सकता है।

गहराई से पढ़ें:
- Vos, The Real-Time Volumetric Cloudscapes of Horizon Zero Dawn (GDC 2016 वीडियो, layering ब्रेकडाउन दूसरे हिस्से में है)।
- Bauer, Creating the Atmospheric World of Red Dead Redemption 2 (SIGGRAPH 2019, RDR2 की संयुक्त sky/clouds/volumetrics पाइपलाइन)।
- Hillaire, Volumetric clouds and mega particles in REDengine 4 (GDC 2025, Cyberpunk 2077 की बादल पाइपलाइन)।
5. Froxel grids के साथ वॉल्यूमेट्रिक कोहरा
कोहरा एक 3D फ़ील्ड है, 2D स्क्रीन इफ़ेक्ट नहीं। मानक आधुनिक तरीका froxel grid है: कैमरे के view frustum से aligned एक 3D टेक्सचर, जिसका हर सेल ("froxel" = frustum + voxel) density और lit color स्टोर करता है। एक compute shader हर light source से scattering को grid में inject करता है, view ray के साथ extinction इकट्ठा करता है, और नतीजे को एक fullscreen pass के रूप में लागू करता है।
यही आपको खिड़कियों से आती light shafts, point lights के आसपास रंगीन कोहरा, और विस्फोटों के चारों ओर दिखने वाले volumes देता है। यही "atmospheric perspective" के पीछे की मशीनरी भी है जो दूर की चीज़ों को हवा में धुँधला कर देती है। यह तकनीक Bart Wronski ने Assassin's Creed 4 के लिए पेश की और Sébastien Hillaire ने Frostbite में मानकीकृत की।

गहराई से पढ़ें:
- Wronski, Volumetric Fog: Unified Compute Shader Based Solution to Atmospheric Scattering (SIGGRAPH 2014, मूल froxel-grid पेपर)।
- Hillaire, Physically Based and Unified Volumetric Rendering in Frostbite (SIGGRAPH 2015, production-grade इम्प्लीमेंटेशन)।
- Kovalovs, Volumetric Effects of The Last of Us Part Two (SIGGRAPH 2020, temporal jitter और depth-correct compositing पर नोट्स के साथ)।
- Wright et al., Lumen: Real-Time Global Illumination in Unreal Engine 5 (SIGGRAPH 2022, इसमें वॉल्यूमेट्रिक कोहरे के साथ Lumen का interaction शामिल है)।
6. God rays और crepuscular shafts
धुँधली हवा में सूरज की रोशनी की दिखने वाली किरणें कोई अलग इफ़ेक्ट नहीं हैं। वे उसी कोहरा सिस्टम से निकलती हैं, बशर्ते कोहरे की density और shadow map दोनों उसी compute shader को उपलब्ध हों। जब shader एक froxel में रोशनी inject करता है, तो वह उस froxel की world position पर shadow map को sample करता है। छाया में पड़े सेल अँधेरे रहते हैं, रोशनी में पड़े सेल सूरज का रंग पकड़ लेते हैं। कैमरा ray को नतीजे के बीच से मार्च करें और चमकीले सेल लगातार shafts बना देते हैं।
सस्ते screen-space वैरिएंट मौजूद हैं (सूरज की position से depth buffer में radial blur) और मोबाइल या low-end हार्डवेयर पर अब भी सही चुनाव हैं। वे ऑफ़-स्क्रीन सूरज की positions छोड़ देते हैं पर लगभग कुछ खर्च नहीं करते।

गहराई से पढ़ें:
- Mitchell, Volumetric Light Scattering as a Post-Process (GPU Gems 3, screen-space radial-blur तरीका)।
- Engelhardt and Dachsbacher, Epipolar Sampling for Shadows and Crepuscular Rays in Participating Media (I3D 2010, ज़्यादा सटीक GPU तकनीक)।
- Vos, Volumetric Light Effects in Killzone: Shadow Fall (SIGGRAPH 2014, shadow integration के साथ production संस्करण)।
7. बिजली और stochastic मौसम घटनाएँ
बिजली एक one-frame इफ़ेक्ट है जिसके दो हिस्से होते हैं: bolt mesh, और पूरे सीन का tonemap और लाइटिंग प्रतिक्रिया। bolt खुद आमतौर पर एक procedural billboard mesh होता है जो एक recursive line-segment subdivision एल्गोरिथ्म से बनाया जाता है, अराजकता के लिए jittered और ज़मीन की ओर tapered। कुछ engine इसे एक screen-space additive flash के रूप में रेंडर करते हैं, अन्य एक पूरी तरह lit emissive geometry के रूप में जो एक one-frame point-light injection के ज़रिए दुनिया पर रोशनी डालती है।
दिलचस्प हिस्सा है बाकी सब कुछ: बादलों के पेंदे नीचे से रोशन होते हैं, ज़मीन दो frames के लिए चमकती है, auto-exposure metering को उबरने में कुछ frames लगते हैं, और दूरी के आधार पर एक देर से आने वाली गरज की आवाज़ बजती है। अच्छी तरह किया जाए तो यह एक 16 ms की चमक को पाँच-सेकंड के क्रम में बदल देता है जो मौसम को दुनिया में होती किसी चीज़ की तरह बेचता है, सिर्फ़ उसके ऊपर नहीं।

गहराई से पढ़ें:
- Reed and Wyvill, Visual Simulation of Lightning (SIGGRAPH 1994, recursive bolt एल्गोरिथ्म जो आज भी सब इस्तेमाल करते हैं)।
- Kim and Lin, Fast Animation of Lightning Using an Adaptive Mesh (IEEE TVCG 2007, ज़्यादा physically grounded)।
- Bauer, Creating the Atmospheric World of Red Dead Redemption 2 (SIGGRAPH 2019, RDR2 की storm पाइपलाइन जिसमें बिजली की timing शामिल है)।
8. बारिश के particles, बारिश के meshes, और screen-space बूँदें
आधुनिक गेम्स में गिरती बारिश शायद ही कभी सिर्फ़ particles होती है। सस्ता और विश्वसनीय समाधान scrolling टेक्सचर का एक छोटा सेट है जो vertical या screen-aligned quads पर खिंचा होता है, और बाकी हर चीज़ की तरह उन्हीं सूरज और आसमान probes से रोशन होता है। कैमरे के पास, अलग-अलग streak particles विस्तार जोड़ते हैं। कैमरे के lens पर ही, droplet टेक्सचर, फिसलते trails, और impact ripples "आप तूफ़ान के अंदर हैं" का अहसास बेचते हैं।
हवा बारिश की दिशा को प्रभावित करती है। वही wind वेक्टर बादल weather map को धकेलता है, घास को मोड़ता है, और बारिश के quads को झुकाता है। एक पूरे सीन का वेक्टर, दर्जनों उपभोक्ता।

गहराई से पढ़ें:
- Tatarchuk, Artist-Directable Real-Time Rain Rendering in City Environments (EGSR 2006, प्रामाणिक layered-rain संदर्भ)।
- Garg and Nayar, Photorealistic Rendering of Rain Streaks (SIGGRAPH 2006, बारिश की बूँदों से होकर रोशनी की physics)।
- Wojciechowski, Rain in Cyberpunk 2077 (GDC 2021, एक आधुनिक production वॉकथ्रू)।
9. गीली सतहें, पोखर, और ripples
ऐसी बारिश जो ज़मीन को नहीं बदलती, तुरंत नकली दिखती है। गीली सतहें अपना albedo गहरा करके (पानी आती रोशनी को सोख लेता है), अपने normals को चपटा करके (पानी की परत microsurface को चिकना कर देती है), और अपनी roughness घटाकर (पानी तीखे कोणों पर लगभग एक संपूर्ण आईना है) प्रतिक्रिया देती हैं। shader में बदलाव छोटा है, विज़ुअल बदलाव बहुत बड़ा।
पोखर mask-driven होते हैं: एक height-based या vertex-painted mask उन निचली जगहों को परिभाषित करता है जो "wetness" parameter बढ़ने पर पानी से भर जाती हैं। Ripples flipbook normal-map टेक्सचर होते हैं जो बारिश की बूँदों के impacts से trigger होते हैं। वाकई अच्छे इम्प्लीमेंटेशन wetness state को समय के साथ बनाते हैं, ताकि एक लंबा तूफ़ान दुनिया को धीरे-धीरे भिगो दे और एक छोटी फुहार सिर्फ़ ऊँची जगहों को गहरा करे।

गहराई से पढ़ें:
- Lagarde and de Rousiers, Moving Frostbite to Physically Based Rendering 3.0, section 5.5 (SIGGRAPH 2014, प्रामाणिक wet-surface PBR समायोजन)।
- Lagarde, Adopting a Physically Based Shading Model (मूल ब्लॉग सीरीज़ जिसमें wet-PBR गणित है)।
- Cyanilux, Rain Effects Breakdown (पोखर, ripples, और droplets का एक सुलभ Shader Graph वॉकथ्रू)।
10. बर्फ का जमाव और deformation
बर्फ बारिश की सममित समस्या है: दुनिया को इसे याद रखना होता है, सिर्फ़ पाना नहीं। मानक तरीका एक top-down "snow accumulation" टेक्सचर इस्तेमाल करता है जो समय के साथ वहाँ जमता है जहाँ आसमान दिखता है (एक top-down depth या shadow map के विरुद्ध कैलकुलेट किया गया)। terrain shader इस mask को sample करता है और छायादार क्षेत्रों में बर्फ का material और खुले इलाकों में snow-deep displacement ब्लेंड करता है।
पैरों के निशान और टायर के निशान खिलाड़ी पर केंद्रित एक sliding deformation map में रेंडर होते हैं। जैसे-जैसे कैमरा हिलता है, पुराने पैरों के निशान scroll होकर बाहर निकलते हैं और टेक्सचर चारों ओर wrap हो जाता है। terrain या snow shader इस deformation map को sample करता है और जहाँ लिखा गया है वहाँ vertices को नीचे धकेलता है। Battlefield 5 की बर्फ यह हार्डवेयर tessellation से करती है; सस्ते तरीके सिर्फ़ vertex displacement के साथ एक high-density terrain mesh इस्तेमाल करते हैं।

गहराई से पढ़ें:
- Barré-Brisebois, Hands-on with Battlefield 5: how the small things matter (Frostbite बर्फ का production लेख)।
- St-Amour, Real-time snow deformation (पूरे GPU इम्प्लीमेंटेशन विवरण के साथ एक थीसिस)।
- Andersson, Terrain Rendering in Frostbite Using Procedural Shader Splatting (वह splat-सिस्टम बुनियाद जिसके ऊपर snow accumulation सवार होता है)।
11. एक global सिस्टम के रूप में हवा
हवा कोई particle इफ़ेक्ट नहीं है। production engines में यह एक अकेला global वेक्टर है (कभी-कभी एक low-resolution 3D फ़ील्ड) जिसे हर डायनामिक सिस्टम अपने vertex shader में पढ़ता है। घास की पत्तियाँ झुकती हैं, पेड़ की शाखाएँ डोलती हैं, कपड़ा फड़फड़ाता है, पत्तियाँ बहती हैं, बारिश झुकती है, धुआँ बहता है, बादल weather maps scroll होते हैं। हर frame पर अपडेट होने वाला एक uniform, दर्जनों उपभोक्ता।
समृद्ध संस्करण एक "wind grid" है जो world position से sample की गई दिशा और ताकत स्टोर करता है, जिससे स्थानीय झोंकों वाले तूफ़ान, सुरक्षित घाटियाँ, और इमारतों के पीछे की wakes संभव होती हैं। Foliage को आमतौर पर authoring समय पर bake किया गया एक per-vertex offset भी मिलता है ताकि एक जैसे पेड़ एक साथ ताल में न डोलें। नतीजा एक ऐसी दुनिया है जो एक ही गति से साँस लेती है।

गहराई से पढ़ें:
- McAuley, Rendering the World of Far Cry 4 (GDC 2015, इसमें वनस्पति के लिए Far Cry 4 का wind grid शामिल है)।
- Habel and Wimmer, Realistic Real-Time Rendering of Landscapes Using Billboard Clouds (पुराना, पर वनस्पति पर हवा का गणित अब भी वही है)।
- Frostbite, The Vegetation of Horizon Zero Dawn (SIGGRAPH 2017, wind-सिस्टम architecture के साथ)।
12. रेतीले तूफ़ान, बर्फ़ीले तूफ़ान, और घना मौसम
भीषण मौसम अपनी अलग रेंडरिंग श्रेणी है। एक रेतीला तूफ़ान एक मोटा, अपारदर्शी, ground-aligned कोहरा है जिसमें एक मज़बूत दिशात्मक झुकाव और आक्रामक distance fog होता है। एक बर्फ़ीला तूफ़ान कैमरे के पास एक particle धमाका और घटी हुई दृश्यता जोड़ता है। ज्वालामुखीय राख और धुआँ अलग रंगों के साथ वही architecture हैं।
जो चीज़ इन्हें बेचती है वह particles नहीं है, वह है coupling: सूरज मद्धम पड़ता है, आसमान का रंग बदलता है, post-process color grading खिसकती है, ambient ऑडियो बदलता है, पैरों की आवाज़ बदलती है, खिलाड़ी की आवाज़ दबी हुई हो जाती है अगर उसकी कोई हो। रेंडरर संदेशवाहक है; immersion गेम के हर सिस्टम के एक ही समय पर प्रतिक्रिया देने से आता है।

गहराई से पढ़ें:
- Burley, The Real-Time Sky and Atmosphere of Uncharted: The Lost Legacy (GDC 2018, घने-मौसम composition पर नोट्स के साथ)।
- Khalifa, Atmospheric Weather Effects in Forza Horizon 5 (GDC 2022, आधुनिक open-world मौसम)।
- Karis, The Technology Behind the Unreal Engine 5 "Lumen in the Land of Nanite" Demo (SIGGRAPH 2021, गुफा की धूल वाले सीन का वॉल्यूमेट्रिक stack)।
13. Time of day और डायनामिक आसमान
रियल-टाइम time of day वह गुणक है जो इस सूची के हर दूसरे सिस्टम को शिप करने लायक बना देता है। सूरज की दिशा और रंग एक 24-मिनट या 24-घंटे के चक्र पर अपडेट होते हैं। atmosphere LUT सूरज के कोण के साथ अपडेट होता है। बादलों की लाइटिंग हर frame पर फिर से कैलकुलेट होती है। shadow cascades फिर से इंगित होती हैं। reflection probes रीफ़्रेश होते हैं। ambient रंग खिसकता है। post-process exposure adapt होता है।
इसे बिना दिखने वाले artifacts के करना ज़्यादातर texture caching और temporal stability की कहानी है। तेज़ तकनीकें आसमान को निश्चित सूरज कोणों पर precompute करती हैं और interpolate करती हैं; धीमी तकनीकें हर frame फिर से कैलकुलेट करती हैं। Hillaire 2020 का atmosphere मॉडल फिर से कैलकुलेट करने लायक तेज़ है, यही वजह है कि UE5 इसे शिप करता है। बादल weather map हवा के साथ scroll होता है, इसलिए coverage बिना किसी के keyframes authoring के स्वाभाविक रूप से खिसक जाता है।

गहराई से पढ़ें:
- Hillaire, A Scalable and Production Ready Sky and Atmosphere Rendering Technique (EGSR 2020, डायनामिक time-of-day चर्चा के साथ)।
- Pesce, Real-Time Sky Rendering: Techniques and Tradeoffs (Ray Tracing Gems II अध्याय, आधुनिक सर्वेक्षण)।
- Bauer, Creating the Atmospheric World of Red Dead Redemption 2 (SIGGRAPH 2019, 24-घंटे पाइपलाइन के साथ)।
14. मौसम state machine
इस सब के नीचे एक छोटी सी state machine है। ज़्यादातर गेम्स 4 से 12 मौसम states के बीच कहीं शिप करते हैं (साफ़, आंशिक रूप से बादल, घना बादल, हल्की बारिश, तेज़ बारिश, गरज वाला तूफ़ान, कोहरा, बर्फ, बर्फ़ीला तूफ़ान, रेतीला तूफ़ान), हर एक parameters के एक सेट से परिभाषित: बादल coverage और प्रकार, हवा की गति और दिशा, वर्षा का प्रकार और तीव्रता, ambient रंग, ऑडियो प्रोफ़ाइल, post-process grade।
Transitions 30 से 120 सेकंड में parameter सेट के बीच linear interpolations होती हैं। transition कोई विशेष मामला नहीं है, यह बस दो states के बीच lerp होना है, जिसमें हर रेंडरिंग सबसिस्टम उस frame के मौजूदा parameter मानों को पढ़ता है। मौसम scripted हो सकता है (cutscene को एक तूफ़ान चाहिए), seeded (हर क्षेत्र के लिए हर इन-गेम दिन पर deterministic ताकि एक ही दुनिया में दो खिलाड़ी एक जैसा मौसम देखें), या एक region grid पर पूरी तरह authored। सबसे साफ़ पाइपलाइन इन तीनों को एक ही parameter buffer में लिखने वाले अलग-अलग schedulers की तरह मानती हैं।

गहराई से पढ़ें:
- Bauer, Creating the Atmospheric World of Red Dead Redemption 2 (SIGGRAPH 2019, weather-state पाइपलाइन के साथ)।
- Khalifa, Atmospheric Weather Effects in Forza Horizon 5 (GDC 2022, parameter-blend तरीके के साथ)।
- Schneider, The Real-Time Volumetric Cloudscapes of Horizon Zero Dawn (SIGGRAPH 2015, weather-map-driven बादल विकास के साथ)।
15. सिनेमाई पल
यह पूरा stack कुछ हस्ताक्षर पलों के लिए मौजूद है। एक रिज पर खड़े होना जब एक storm front लुढ़कता हुआ आता है। canopy में एक खुली जगह से एक sun shaft को जलते देखना। एक गुफा से बाहर बर्फ में निकलना। एक cumulus बादल के बीच से उड़ना और अंदर की रोशनी देखना।
ये वे पल हैं जिनके खिलाड़ी screenshots लेते हैं। ये वे पल भी हैं जहाँ ऊपर का हर सिस्टम एक ही समय पर काम कर रहा होना चाहिए: cloud volumetrics, atmospheric scattering, shadow integration के साथ कोहरा, wet PBR, foliage पर हवा, time-of-day color grading, और मौसम states के बीच एक transition, सब एक frame में composing होते हुए। इनमें से कोई एक भी गलत करें और जादू टूट जाता है।

इसका browser के लिए क्या मतलब है
इनमें से ज़्यादातर तकनीकें WebGPU पर साफ़-साफ़ map हो जाती हैं। हमने open-world browser engine में बुनियादी atmospheric कोहरा, equirectangular skybox ब्लेंडिंग, और screen-space distance haze शिप किया है। मुश्किल हिस्से (पूर्ण वॉल्यूमेट्रिक बादल, froxel grid कोहरा, डायनामिक पोखरों के साथ wet PBR, snow deformation maps) अब अगला स्पष्ट कदम हैं जब terrain पाइपलाइन स्थिर है। Spike 24 का skybox से per-fragment fog color sampling इस पहेली का एक टुकड़ा है। एक compute-shader cloud raymarcher जो उसी atmosphere LUT में feed करता है, अगला टुकड़ा है।
अच्छी खबर यह है कि browser हार्डवेयर का फ़र्श अब काफ़ी ऊँचा है। WebGPU compute, 3D टेक्सचर, indirect dispatch, और timestamp queries सब मौजूद हैं। Hillaire 2020 atmosphere को WebGL पर कई बार पोर्ट किया गया है। Schneider के Nubis के GLSL में ओपन-सोर्स reference implementations हैं जो यांत्रिक संपादनों के साथ WGSL में बदल जाते हैं। अब कोई रेंडरिंग वजह नहीं बची है कि एक browser गेम के पास वही आसमान न हो जो एक console के पास है। बस इंजीनियरिंग वजहें हैं, और इंजीनियरिंग वजहें वह तरह की हैं जो हमें पसंद हैं।
पूरे stack में आगे पढ़ने के लिए
अगर आप एक ऐसा स्रोत चाहते हैं जो इस सब को एक साथ खींचे, तो SIGGRAPH "Advances in Real-Time Rendering in Games" आर्काइव (advances.realtimerendering.com) में 2014 तक के प्रामाणिक मौसम और वातावरण टॉक्स हैं। विशिष्ट गेम्स अपना आसमान और मौसम कैसे रेंडर करते हैं, इसके production tear-downs के लिए Adrian Courrèges के GPU profiling लेखों में GTA V, Horizon Zero Dawn, और Doom Eternal के विस्तृत frame-by-frame ब्रेकडाउन शामिल हैं। खासकर आसमान और वातावरण के गणित के लिए, scratchapixel.com का volume rendering अध्याय सबसे सहज परिचय है, और Hillaire की ओपन-सोर्स implementation repository production-quality reference है।