GLB

GLB फ़ाइल क्या होती है?

glTF, अपनी बनावटों के साथ अंदर। एक फ़ोल्डर भर निर्भरताओं की जगह एक ही फ़ाइल।

GLB है क्या

GLB एक बाइनरी फ़ॉर्मेट है, जो सिर्फ़ उसी प्रोग्राम के लिए मायने रखता है जो इसे जानता हो। यह पिक्सेल के बजाय आकृतियाँ और निर्देशांक सहेजता है, इसलिए किसी भी आकार में साफ़ रहता है — होर्डिंग जितना बड़ा किया गया लोगो भी कुछ नहीं खोता। इसका इस्तेमाल वेब और बनी हुई फ़ाइल सौंपना के लिए होता है।

एक्सटेंशन .glb है और पूरा नाम Binary glTF। दोनों उतना नहीं बताते जितना यह कि फ़ाइल अंदर क्या-क्या रख सकती है — और इस पन्ने का बाक़ी हिस्सा इसी के बारे में है।

GLB आया कहाँ से

इसे Khronos Group ने 2016 में जारी किया था। विनिर्देश glTF 2.0 है।

उम्र एक व्यावहारिक वजह से काम की है: फ़ॉर्मेट जितना पुराना, उतने ज़्यादा प्रोग्रामों को उसे सीखने का वक़्त मिला है।

विनिर्देश सार्वजनिक है

यह पूरा प्रकाशित है, इसलिए कोई भी इसे देखकर अंदाज़ा लगाने के बजाय दस्तावेज़ पढ़कर लागू कर सकता है। यही वजह है कि यह फ़ॉर्मेट इतने सारे प्रोग्रामों में मिलता है, और यही वजह है कि बीस साल पहले लिखी गई फ़ाइलें आज भी खुल जाती हैं। पर विनिर्देश का प्रकाशित होना और उसका रॉयल्टी-मुक्त होना एक बात नहीं है: जहाँ फ़ॉर्मेट किसी कोडेक को अपने अंदर लपेटता है, वहाँ पेटेंट का लाइसेंस एक अलग सवाल है, और मानक उसका जवाब नहीं देता।

कुछ भी फेंका नहीं जाता

GLB फ़ाइल अपना अंदरूनी हिस्सा हूबहू सहेजती है। दोबारा सहेजने से कुछ नहीं बदलता, इसलिए इसे जितनी बार चाहें खोलिए, बदलिए और फिर से सहेजिए — नुक़सान जमा नहीं होता। यही बात इसे सौंपने का नहीं, काम करने का फ़ॉर्मेट बनाती है।

यह एक से ज़्यादा फ़्रेम रख सकती है

GLB फ़ाइल ठहरी हुई एक तस्वीर के बजाय पूरा एनिमेशन सहेज सकती है। बदलने से पहले यह जान लेना ज़रूरी है: जो लक्ष्य सिर्फ़ एक फ़्रेम रखता है, वह पहला रख लेता है और बाक़ी गिरा देता है — अमूमन बिना बताए।

GLB को खोलता कौन है

Blender, three.js और Babylon.js इसे पढ़ते हैं, और इसी तरह के ज़्यादातर दूसरे प्रोग्राम भी।

फ़ाइल न खुले तो कसूर फ़ॉर्मेट का शायद ही कभी होता है — अक्सर प्रोग्राम ही फ़ॉर्मेट से पुराना होता है। किसी पुरानी चीज़ में बदल लेना इससे निकलने का भरोसेमंद रास्ता है, और इस वेबसाइट का बाक़ी हिस्सा इसी के लिए है।

इसे ब्राउज़र में खोलना

इसे कोई भी ब्राउज़र नहीं पढ़ता।

इसे बदलने की सबसे आम वजह यही है: फ़ॉर्मेट ख़राब है, ऐसा नहीं — बात यह है कि जहाँ आप फ़ाइल दिखाना चाहते हैं वह जगह उसे पढ़ ही नहीं सकती।

यह काम करने का फ़ॉर्मेट है

GLB इसलिए बना है कि इसे खोला और बदला जाए। जब तक काम चल रहा है फ़ाइल इसी फ़ॉर्मेट में रखिए, और जब भी बनी हुई प्रति चाहिए हो, इसी से निर्यात कीजिए।

वही मॉडल, एक फ़ाइल में

GLB एक ही बाइनरी कंटेनर में पैक किया glTF है: JSON सीन विवरण, ज्यामिति बफ़र और हर बनावट, छोटे हेडर वाली एक फ़ाइल में। कुछ जोड़ा या छोड़ा नहीं जाता — GLB खोलिए तो .gltf, .bin और वे तस्वीरें मिलती हैं जो अन्यथा फ़ोल्डर में बैठी होतीं।

यही पूरा फ़र्क़ है, और यही वजह है कि वेब पर 3D के रूप में प्रकाशित लगभग हर चीज़ GLB है। बिना साथियों की .gltf ऐसे डेटा की ओर इशारा करने वाला सीन विवरण है जो वहाँ है ही नहीं।

यहाँ एक फ़ाइल कहीं और से ज़्यादा क्यों मायने रखती है

3D मॉडल में ज़्यादातर एसेट से ज़्यादा ढीले हिस्से होते हैं: बाइनरी बफ़र, base color बनावट, normal map, roughness map, occlusion map, emissive map। एक वस्तु आठ फ़ाइलें हो सकती है।

एक फ़ाइल एक पूरी श्रेणी की ख़राबी हटा देती है — ग़ायब बनावट, टूटा रिश्तेदार पथ, एक स्तर ऊपर ज़िप किया फ़ोल्डर। यह नेटवर्क राउंड-ट्रिप भी हटाती है: GLB लाने वाला ब्राउज़र एक अनुरोध करता है जहाँ बराबर .gltf आठ करता।

ऑगमेंटेड रियलिटी क्या माँगती है

Android पर, Scene Viewer GLB लेता है, और ज़्यादातर साइटों का इस्तेमाल किया model-viewer एलिमेंट GLB को मुख्य स्रोत की तरह लेता है। किसी उत्पाद पन्ने पर फ़ोन तानिए और कमरे में दिखने वाला मॉडल इसी से आया।

iOS जान लेने लायक़ अपवाद है: Apple का Quick Look अपना USDZ फ़ॉर्मेट इस्तेमाल करता है, इसलिए दोनों प्लैटफ़ॉर्म पर ऑगमेंटेड रियलिटी सँभालने वाली साइट GLB और USDZ साथ-साथ प्रकाशित करती है।

इसे वेब पन्ने के लिए काफ़ी छोटा रखना

बनावट हावी रहती है, ज्यामिति नहीं। चार 4K मैप वाला मॉडल बाक़ी कुछ गिनने से पहले ही तीस मेगाबाइट का है, और उन्हें 1K या 2K तक घटाना उस आकार पर आमतौर पर कुछ दिखने लायक़ नहीं खोता।

फिर मेश के लिए Draco, जो अक्सर ज्यामिति को उसके पाँचवें या दसवें हिस्से तक ले आता है, और बनावट के लिए Basis Universal समेत KTX2। साथ में ये अक्सर चालीस-मेगाबाइट निर्यात को तीन से कम में बदल देते हैं।

GLB किसमें कमज़ोर है

संपादन और निरीक्षण में। .gltf पढ़ने लायक़ JSON है, इसलिए ग़लत सामग्री मूल्य या ग़लत-नापा नोड टेक्स्ट एडिटर में ढूँढा और ठीक किया जा सकता है, और वर्शन कंट्रोल सिस्टम दो संशोधनों के बीच सार्थक diff दिखा सकता है।

GLB अपारदर्शी है। कोई भी बदलाव खोलने, संपादित करने और दोबारा-पैक करने की माँग करता है, और GLB फ़ाइलें रखने वाला रिपॉज़िटरी हर कमिट पर पूरी नई बाइनरी सहेजता है। समझदार व्यवस्था है काम की मास्टर कॉपी के रूप में .gltf रखना और GLB को डिलीवरी के लिए बिल्ड-स्टेप बनाना।

GLB कहाँ स्वीकार होता है

व्यापक रूप से, दस साल पुराने फ़ॉर्मेट के लिए। हर वेब 3D लाइब्रेरी, Blender, Unity, Unreal, Godot, Substance, Sketchfab, Android का AR व्यूअर, और प्रमुख एसेट मार्केटप्लेस। Microsoft Office भी इसे किसी दस्तावेज़ या स्लाइड में embed कर सकता है।

जहाँ यह स्वीकार नहीं होता वह है पुरानी पाइपलाइनों के इर्द-गिर्द बना कुछ भी: 3D प्रिंटिंग को STL या 3MF चाहिए, CAD को अपने फ़ॉर्मेट, फ़िल्म और VFX USD या Alembic इस्तेमाल करते हैं।

इसमें और इससे बदलना

GLB और glTF दोनों दिशाओं में बिना-हानि बदलते हैं, क्योंकि वे अलग पैकेजिंग वाला एक ही डेटा हैं। एक पढ़ने वाली कोई भी चीज़ दूसरी भी पढ़ लेती है।

OBJ, FBX या किसी मॉडलिंग प्रोग्राम से, सामग्री को ध्यान की ज़रूरत होगी: GLB की भौतिक-आधारित शब्दावली का OBJ के MTL में कोई समकक्ष नहीं, इसलिए आयातित मॉडल धूसर और सही आता है, बनावट वाला और सही नहीं। STL में छपाई के लिए, आकार के अलावा सब कुछ छूट जाता है।

ज़रूरी जानकारी, एक जगह

GLB फ़ॉर्मेट की पहचान और उसका स्रोत।
एक्सटेंशन.glb
मीडिया टाइपmodel/gltf-binary
प्रकाशकKhronos Group
पहली बार प्रकाशित2016
विनिर्देशglTF 2.0

GLB फ़ाइलें: आम सवाल

GLB और glTF में क्या फ़र्क़ है

सिर्फ़ पैकेजिंग का। .gltf JSON है जो अलग बाइनरी बफ़र और बनावट फ़ाइलों का संदर्भ लेता है, इसलिए मॉडल फ़ोल्डर है; .glb सब कुछ एक बाइनरी फ़ाइल में पैक करता है। दोनों में बदलना दोनों दिशाओं में बिना-हानि है।

GLB फ़ाइल कैसे खोलूँ

Blender इसे सीधे खोलता है, वैसे ही Unity, Unreal और Godot। जल्दी नज़र डालने के लिए कोई भी वेब-आधारित glTF व्यूअर काम करेगा।

मेरी GLB फ़ाइल इतनी बड़ी क्यों है

लगभग हमेशा बनावट, ज्यामिति नहीं। चार 4K मैप बाक़ी कुछ गिनने से पहले ही तीस मेगाबाइट हैं। पहले उन्हें 1K या 2K तक घटाइए, फिर मेश के लिए Draco और बनावट के लिए KTX2 लगाइए।

क्या GLB ऑगमेंटेड रियलिटी के लिए इस्तेमाल कर सकता हूँ

Android पर, हाँ — Scene Viewer सीधे GLB लेता है। iOS Apple का अपना USDZ फ़ॉर्मेट इस्तेमाल करता है, इसलिए दोनों सँभालने वाली साइट GLB और USDZ साथ-साथ प्रकाशित करती है।

क्या मुझे अपने मॉडल GLB के रूप में रखने चाहिए

डिलीवरी कॉपी के रूप में, हाँ। काम की मास्टर कॉपी के रूप में, नहीं — .gltf पढ़ने लायक़ JSON है जिसे जाँचा और टेक्स्ट एडिटर में ठीक किया जा सकता है, जहाँ GLB अपारदर्शी है।

क्या GLB 3D प्रिंट कर सकता हूँ

पहले STL या 3MF में बदलिए, और मेश सुधारने की उम्मीद रखिए। रियल-टाइम रेंडरिंग के लिए बने मॉडल अक्सर watertight नहीं होते — बिना मोटाई वाली सतहें स्क्रीन पर सही दिखती हैं और छापने लायक़ नहीं होतीं।