Skip to content

Babylon.js 9.0: clustered lighting, node particles, और gaussian splatting का overhaul

Babylon.js 9.0 आ गया है, और यह इस open-source WebGPU/WebGL engine का अब तक का सबसे बड़ा रिलीज़ है। सबसे बड़ा feature है एक clustered lighting system, जो scenes को WebGPU और WebGL 2 दोनों पर smooth frame rates के साथ सैकड़ों या हज़ारों dynamic lights render करने देता है।

Babylon.js 9.0 में नया Node Particle Editor

Clustered lighting सब कुछ बदल देती है

पारंपरिक per-pixel lighting हर pixel को मजबूर करती है कि वह scene की हर light का योगदान calculate करे, भले ही वो lights उसके आसपास कहीं न हों। Clustered lighting इसे ठीक करती है, lights को screen-space tiles और depth slices में group करके। Render के समय हर pixel सिर्फ़ उन lights को evaluate करता है जो वाकई उस पर असर डालती हैं। नतीजा यह कि 1,000 dynamic lights वाली एक scene अब घिसटने के बजाय real-time frame rates पर चल सकती है।

यह WebGPU और WebGL 2 दोनों पर काम करता है, यानी यह performance सुधार सबसे बड़े संभव audience तक पहुँचता है।

Textured area lights

Area lights को Babylon.js 8.0 में पेश किया गया था। Version 9.0 इसमें emission textures जोड़ता है, ताकि आप किसी भी image को एक rectangular area light के ज़रिए project कर सकें। stained glass projections, LED panel displays, या physically accurate light emission वाले cinematic lighting setups के बारे में सोचिए।

Volumetric lighting

नया volumetric lighting system fog, dust, और haze के बीच से light shafts render करता है। इसमें configurable extinction और phase parameters शामिल हैं, ताकि atmosphere में light कैसे scatter हो इस पर artistic नियंत्रण मिले। यह system directional light sources को सपोर्ट करता है और जहाँ उपलब्ध हो वहाँ WebGPU compute shaders का इस्तेमाल करता है, और WebGL 2 fallbacks के साथ आता है।

Node Particle Editor

Node Particle Editor (NPE) particle systems बनाने के लिए एक visual drag-and-connect tool है। अगर आपने Node Material Editor इस्तेमाल किया है, तो workflow बिलकुल वैसा ही है। आपको emission shapes, sprite sheets, update behaviors, और sub-emitters पर एक non-destructive node graph के ज़रिए पूरा नियंत्रण मिलता है। Flow maps और gravity attractors particle upgrades को पूरा करते हैं।

Gaussian splatting का overhaul

Babylon.js ने gaussian splatting सपोर्ट version 7.0 में पेश किया था। Version 9.0 इस system को नए सिरे से लिखता है, जिसमें shadow casting, opaque mesh जैसे rendering के लिए triangle splatting, और .splat, .ply, और .spz files के साथ-साथ compressed SOG/SOGS formats का सपोर्ट है। अब आप एक ही scene में कई splat assets को global sorting के साथ combine कर सकते हैं, और हर हिस्से को अलग-अलग transform और animate किया जा सकता है। इस काम में Adobe ने योगदान दिया।

Frame Graph system

Frame Graph, जिसे 8.0 में एक alpha feature के तौर पर पेश किया गया था, इस रिलीज़ में v1 तक पहुँच गया है। यह एक directed acyclic graph है जहाँ हर node एक rendering task को दर्शाता है। यह system texture allocation, reuse, और optimization को अपने आप संभालता है। टीम बताती है कि कुछ मामलों में GPU memory की 40% या उससे ज़्यादा बचत होती है। आप custom render pipelines को Node Render Graph Editor के ज़रिए visually compose कर सकते हैं, या class framework के ज़रिए programmatically।

अन्य जोड़

Animation retargeting आपको एक character skeleton के animations को दूसरे पर लागू करने देता है, भले ही bone structures और naming conventions अलग हों। इस रिलीज़ में एक नए सिरे से बना inspector, बड़े coordinate systems में floating-point jitter रोकने के लिए large world rendering, और geospatial rendering क्षमताएँ भी शामिल हैं।

References