आँकड़ों और विज्ञापन के लिए कुकीज़
हम आँकड़ों और विज्ञापन के लिए कुकीज़ इस्तेमाल करते हैं, दोनों Google को जाती हैं। मना करने से आपको दिखने वाली किसी चीज़ में कोई फ़र्क़ नहीं पड़ता।निजता पेज पढ़ें
यहाँ आप GLB को GLTF में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।
एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।
ये एक के बाद एक बदलती हैं और साथ में एक ZIP बनकर उतरती हैं।
GLB से GLTF
यह GLB से ज्यामिति निकालकर उसके इर्द-गिर्द बिल्कुल नई glTF बनाता है। gltf-pipeline --binary=false या gltf-transform जैसे औज़ार दस्तावेज़ को जस का तस रखते हुए सिर्फ़ बफ़र को बाइनरी डिब्बे से बाहर निकालते हैं — मटीरियल, टेक्सचर और एनिमेशन बिना किसी नुक़सान के साथ आते हैं।
यहाँ ऐसा नहीं होता। कन्वर्टर सीन-ग्राफ़ में घूमकर वर्टेक्स पोज़िशन और त्रिकोण इंडेक्स निकालता है, फिर हर मेश के लिए एक नोड वाला नया दस्तावेज़ बनाता है। अगर मक़सद baseColorFactor बदलकर वापस सेव करना है, तो यह ग़लत औज़ार है — gltf-transform सही है। अगर मक़सद बस यह देखना है कि फ़ाइल में है क्या, तो यह पेज सही जगह है।
दोनों glTF 2.0 हैं, जून 2017 में Khronos Group का प्रकाशित विनिर्देश, शुरू से बाइनरी डिब्बे के साथ। एक .gltf JSON होती है, जिसका वर्टेक्स डेटा या तो साथ की .bin फ़ाइल में रहता है या डेटा URI के रूप में भीतर ही जुड़ा होता है। एक .glb वही JSON और वही बफ़र, बारह बाइट के हेडर के पीछे एक फ़ाइल में जुड़े हुए।
GLB के भीतर सामग्री खंडों में बँटी है: एक JSON खंड और एक BIN खंड, दोनों चार बाइट की सीमा तक पैड किए हुए। दोनों फ़ॉर्मेट के बीच जाने पर मॉडल में कुछ नहीं बदलता — ठीक इसीलिए एक ऐसा कन्वर्टर जो मॉडल को दोबारा बनाता है, नाम भर के बदलाव से कहीं ज़्यादा कर रहा होता है।
वर्टेक्स डेटा उसी एक बफ़र प्रविष्टि पर base64 में एनकोड होकर डेटा URI बन जाता है, तो साथ कोई .bin फ़ाइल नहीं और टूटने वाला कोई सापेक्ष पथ नहीं। एक कन्वर्ज़न से एक ही डाउनलोड निकलता है।
base64 हर तीन बाइट के लिए चार अक्षर लेता है, तो जुड़ा हुआ बफ़र मूल बाइनरी से लगभग 33 प्रतिशत बड़ा होता है, और JSON ऊपर से दो-स्पेस इंडेंटेशन के साथ प्रिंट होती है। किसी एडिटर में खोलने वाली फ़ाइल के लिए यह उचित सौदा है; ब्राउज़र में परोसने के लिए नहीं — वहाँ जो GLB पहले से है वही बेहतर है।
सूची लंबी है: PBR मटीरियल, बेस कलर, नॉर्मल, ऑक्लूज़न, एमिसिव और मेटैलिक-रफ़नेस टेक्सचर, सैंपलर, UV निर्देशांक, वर्टेक्स नॉर्मल, वर्टेक्स रंग, टैंजेंट, मॉर्फ़ टार्गेट, स्किन और जॉइंट, एनिमेशन सैंपलर और चैनल, कैमरा, लाइट और फ़ाइल में घोषित हर एक्सटेंशन।
जो बचता है वह है वर्टेक्स पोज़िशन, त्रिकोण इंडेक्स और मेश नाम। यह glTF फ़ॉर्मेट की सीमा नहीं है — वह यह सब आराम से रख सकता है — यह इस कन्वर्टर की सीमा है, जो ज्यामिति को छह फ़ॉर्मेट के बीच ले जाता है जो बाक़ी किसी बात पर लगभग सहमत नहीं होते।
कोई glTF सीन अक्सर एक ही मेश को अलग-अलग मैट्रिक्स के साथ कई जगह रखता है — चार पहिए एक ही व्हील-मेश का हवाला देते हुए, यही आम उदाहरण है। कन्वर्टर डिफ़ॉल्ट सीन से सीन-ग्राफ़ में घूमता है, हर नोड मैट्रिक्स को उसके पैरेंट से गुणा करता है, और नतीजे वाला वर्ल्ड मैट्रिक्स वर्टेक्स पर लिखने से पहले लागू करता है।
नतीजा यह है कि आकार सही रहता है और ढाँचा नहीं। चार पहिए चार अलग जगहों पर चार अलग मेश बनकर आते हैं, न कि एक मेश जो चार बार दोहराया गया हो। अलग-अलग दिए गए TRS गुण पहले मैट्रिक्स में जोड़े जाते हैं, glTF के तयशुदा क्वाटर्नियन क्रम में।
Draco-संपीड़ित ज्यामिति एक नामित त्रुटि के साथ रुक जाती है, टूटी फ़ाइल नहीं बनती। KHR_draco_mesh_compression वर्टेक्स डेटा को संपीड़ित धारा में रखता है, जिसके लिए अपना डिकोडर चाहिए, और वह यहाँ शामिल नहीं है। Blender से बिना Draco के फिर निर्यात करने या Draco बंद कर gltf-transform चलाने से फ़ाइल सामान्य तरीक़े से पढ़ी जाती है।
जो प्रिमिटिव त्रिकोण-सूची नहीं हैं वे चुपचाप छोड़ दिए जाते हैं, बिगाड़े नहीं जाते। glTF मोड 4 त्रिकोण है; मोड 0 से 3 बिंदु और रेखाएँ हैं, मोड 5 और 6 त्रिकोण पट्टी और पंखा। सिर्फ़ रेखा-ज्यामिति वाली कोई GLB — किसी वायरफ़्रेम या डीबग पथ की — यह संदेश देती है कि कोई त्रिकोण-ज्यामिति मिली ही नहीं।
नतीजा खोलिए और accessors सरणी लगभग हर सवाल का जवाब दे देती है। हर मेश पोज़िशन के लिए एक VEC3 फ़्लोट accessor देता है और इंडेक्स के लिए एक SCALAR accessor; इंडेक्स गिनती को तीन से भाग देने पर त्रिकोणों की संख्या मिलती है, और वर्टेक्स गिनती पोज़िशन accessor से सीधे पढ़ी जाती है।
POSITION accessor में न्यूनतम और अधिकतम मान भी होते हैं — यही छह संख्याएँ बाउंडिंग बॉक्स हैं, और यही सबसे तेज़ तरीक़ा है यह जानने का कि किसी ने भेजा मॉडल हज़ार गुना बड़ा है या मूल बिंदु से कहीं दूर बैठा है। मेश नाम स्रोत से आगे आते हैं, तो कई हिस्सों वाला मॉडल पढ़ने लायक़ बना रहता है।
अगर फ़ाइल किसी वेब पेज पर जानी है, GLB ही रखिए। वह छोटी है, एक ही अनुरोध में आती है, और three.js, Babylon.js और model-viewer तीनों उसे सीधे लोड करते हैं। डिलीवरी के लिए glTF में बदलना फ़ाइल को बड़ा बनाता है और इस कन्वर्टर के ज़रिए वे मटीरियल भी हटा देता है जिनकी वजह से मॉडल दिखाने लायक़ था।
अगर कुछ बदलना और वापस सेव करना है, gltf-transform या Blender के glTF निर्यातक का इस्तेमाल कीजिए। अगर बिना कुछ इंस्टॉल किए फ़ाइल जल्दी देखनी है, या किसी अन्य निर्यात से तुलना के लिए टेक्स्ट रूप चाहिए, यह पेज छोटा रास्ता है।
कन्वर्ज़न सादा JavaScript है, पेज के भीतर ही चलती है — कोई WebAssembly मॉड्यूल डाउनलोड नहीं, कोई अपलोड नहीं, कोई कतार नहीं। मुफ़्त सीमा 100 MB है, जो वेब के लिए बनी किसी भी GLB के लिहाज़ से बहुत बड़ी है।
चूँकि नतीजा अपना बफ़र प्रिटी-प्रिंटेड JSON में base64 के रूप में जोड़ता है, .gltf का .glb से बड़ा होना ही स्वाभाविक है, भले ही मटीरियल हट चुके हों — ज्यामिति ही ज़्यादातर मॉडल का बड़ा हिस्सा है, और base64 उसे और फुला देता है।
| GLB | GLTF | |
|---|---|---|
| पूरा नाम | Binary glTF | GL Transmission Format |
| फ़ाइल एक्सटेंशन | .glb | .gltf |
| मीडिया टाइप | model/gltf-binary | model/gltf+json |
| पहली बार प्रकाशित | 2016 | 2015 |
| प्रकाशक | Khronos Group | Khronos Group |
| विनिर्देश | glTF 2.0 | glTF 2.0 |
| लाइसेंस | खुला मानक | खुला मानक |
| आज की स्थिति | मौजूदा | मौजूदा |
| ब्राउज़र में खुलता है | कोई ब्राउज़र नहीं | कोई ब्राउज़र नहीं |
| इसकी जगह विचारणीय | OBJ | OBJ |
एनिमेशन बना रहता है। GLB और GLTF — दोनों कई फ़्रेम ढोते हैं, इसलिए नतीजा अब भी चलता है।
Blender, three.js और Babylon.js GLB और GLTF — दोनों पढ़ लेते है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।
GLB Khronos Group का फ़ॉर्मेट है, जो 2016 में आया। यह glTF 2.0 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।
GLTF Khronos Group का है और 2015 से चला आ रहा है, और glTF 2.0 में तय किया गया है। Blender, three.js और Babylon.js इस फ़ॉर्मेट को पढ़ लेते है।
नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।
हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।
GLB और GLTF सामग्री का वर्णन बुनियादी तौर पर अलग-अलग तरीक़ों से करते हैं। इसलिए यह कन्वर्ज़न नक़ल नहीं, पुनर्निर्माण है: ईमानदार, पर बाइट-दर-बाइट एक जैसा नहीं। सिर्फ़ ज्यामिति। सामग्री, रंग, बनावट और एनिमेशन साथ नहीं जाते, और जो मॉडल कई बार रखा गया हो वह हर नक़ल के अपनी-अपनी जगह पर पक्की हो जाने के साथ लौटता है।
एनिमेशन बना रहता है। GLB और GLTF — दोनों कई फ़्रेम ढोते हैं, इसलिए नतीजा अब भी चलता है।