आँकड़ों और विज्ञापन के लिए कुकीज़
हम आँकड़ों और विज्ञापन के लिए कुकीज़ इस्तेमाल करते हैं, दोनों Google को जाती हैं। मना करने से आपको दिखने वाली किसी चीज़ में कोई फ़र्क़ नहीं पड़ता।निजता पेज पढ़ें
यहाँ आप OBJ को GLTF में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।
एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।
ये एक के बाद एक बदलती हैं और साथ में एक ZIP बनकर उतरती हैं।
OBJ से GLTF
आधुनिक 3D वेब पाइपलाइन में लगभग हर काम की चीज़ glTF को इनपुट मानती है। gltf-transform इसे छाँटता, वेल्ड करता और कंप्रेस करता है; Khronos validator इसे जाँचता है; three.js और Babylon.js इसे इस्तेमाल करते हैं। OBJ इस सबसे बाहर है, और उसे भीतर लाने का पहला क़दम ऐसा बदलाव है जो यह टूल स्वीकार सकें।
इस चरण पर .glb की बजाय .gltf चुनने की वजह यह है कि JSON रूप वही है जिसे आप पढ़ और बदल सकते हैं। GLB वह अंतिम कलाकृति है जो पाइपलाइन के आख़िर में बनती है, मैटीरियल सही होने और कंप्रेशन पास चलने के बाद। यह पेज उस पाइपलाइन की शुरुआत के लिए है।
वर्ज़न 2.0 और Quinvert को generator बताता एक asset ब्लॉक, scene index 0, हर नोड सूचीबद्ध करता एक scene, हर mesh के लिए एक नोड, हर OBJ ग्रुप के लिए एक mesh, और हर mesh के लिए mode 4, POSITION attribute और एक indices accessor वाला एक primitive। फिर accessor, buffer view और एक buffer।
यह दो-स्पेस इंडेंटेशन के साथ सुव्यवस्थित है, जो इसे minified से क़रीब एक तिहाई बड़ा और बिना फ़ॉर्मैटर के पढ़ने लायक़ बनाता है। जिस दस्तावेज़ को आप संपादित करने वाले हैं उसके लिए यही सही डिफ़ॉल्ट है।
glTF vertex डेटा रखने के तीन तरीक़े देता है: अलग .bin फ़ाइल, buffer के uri फ़ील्ड में base64 डेटा URI, या GLB का बाइनरी चंक। बदलाव एक फ़ाइल बनाता है, तो डेटा URI इकलौता विकल्प है जो नतीजे को स्वयं-निहित रखता है, और यही लिखा जाता है।
दो नतीजे निकलते हैं। फ़ाइल उन्हीं बाइट के बाइनरी संग्रह से क़रीब एक तिहाई बड़ी है, क्योंकि base64 हर तीन बाइट के लिए चार अक्षर लेता है — काम के दस्तावेज़ के लिए स्वीकार्य, डिलीवरी के लिए बेकार। और glTF पढ़ने वाला हर टूल इसे संभालता है।
दस्तावेज़ में कोई materials ऐरे नहीं, क्योंकि OBJ की MTL फ़ाइल नहीं पढ़ी जाती। एक जोड़ना चार लाइन का है: pbrMetallicRoughness ब्लॉक और चार संख्या के baseColorFactor वाला ऑब्जेक्ट रखता materials ऐरे, फिर primitive पर उसका इंडेक्स देता material property।
इससे बिना geometry छुए किसी भी glTF व्यूअर में रंगीन, सही ढंग से जलाया मॉडल मिलता है। टेक्सचर बड़ा काम है, क्योंकि उन्हें तस्वीरें, sampler, texture और — ख़ासकर — TEXCOORD_0 डेटा चाहिए जो यह बदलाव नहीं बनाता।
हर o या g लाइन नया ग्रुप शुरू करती है, और हर ग्रुप नामित mesh बनता है। यह नाम इकलौती ग़ैर-geometric जानकारी है जो बदलाव से पार जाती है, और जिस दस्तावेज़ को आप संपादित करने वाले हैं उसमें यही फ़र्क़ है सही हिस्सा ढूँढने और नोड गिनने के बीच।
स्रोत में बिना नाम वाले ग्रुप को नतीजे में भी नाम नहीं मिलता। अगर बाद में glTF को हाथ से पढ़ना या संपादित करना है, पहले OBJ में ग्रुप के नाम रखिए — वहाँ टेक्स्ट संपादन बाद में JSON में गुमनाम mesh मिलाने से आसान है।
नतीजा स्पेसिफ़िकेशन के उन हिस्सों के हिसाब से लिखा जाता है जिन्हें validator असल में लागू करते हैं। Buffer view इतने पैड होते हैं कि हर accessor का byte offset उसके component size का गुणक हो, जो माँग है, शिष्टाचार नहीं। हर POSITION accessor में min और max होता है, जो ज़रूरी है।
Stride शून्य को कसकर पैक माना जाता है, element size के बराबर stride नहीं, जो स्पेसिफ़िकेशन कहता है। Khronos glTF Validator चलाने पर दिलचस्प आउटपुट त्रुटि नहीं, बल्कि यह info-स्तर का नोट है कि mesh में normal नहीं हैं — जो सच है।
चार या ज़्यादा कोने वाले face पहले कोने से fan-triangulated होते हैं। यह उत्तल quad और n-gon के लिए सही है, जो व्यवहार में इन फ़ाइलों में होते हैं, और अवतल face पर एक-दूसरे को काटते triangle बना सकता है।
नकारात्मक face इंडेक्स पढ़ते समय हल किए जाते हैं, क्योंकि वे सबसे हाल के vertex से पीछे गिनते हैं। फिर vertex हर ग्रुप में छह दशमलव अंक तक वेल्ड होते हैं, तो जो ग्रुप चार-हज़ार-vertex फ़ाइल में से बारह का इशारा करता है वह glTF में बारह vertex रखता है, चार हज़ार नहीं।
बफ़र पर base64 का फैलाव, प्लस उसके चारों ओर सुव्यवस्थित JSON। सिर्फ़-geometry मॉडल के लिए बफ़र ही हावी है, तो GLB से क़रीब एक तिहाई ज़्यादा बाइट की उम्मीद रखिए, किसी कंप्रेशन से पहले।
पाइपलाइन के इस बिंदु पर यह सही सौदा है और आख़िर में ग़लत। काम की आम शक्ल है: यहाँ glTF में बदलिए, संपादित या प्रोसेस कीजिए, फिर GLB को अंतिम कलाकृति के तौर पर बनाइए — वापस बदलकर या gltf-transform से लिखवाकर, जहाँ Draco या meshopt कंप्रेशन भी होता है।
अगर बदलाव और डिलीवरी के बीच फ़ाइल के साथ कुछ नहीं होना, सीधे GLB पर जाइए। यह छोटी है, एक रिक्वेस्ट है, और जिस संपादन-योग्यता के लिए आप अतिरिक्त बाइट की क़ीमत चुका रहे हैं वह बेमानी है अगर कोई खोलता ही नहीं।
glTF तब चुनिए जब अगला क़दम बाक़ी है: कोई मैटीरियल जोड़ना, कोई validator संतुष्ट करना, कोई transform पास चलाना, या ऐसा रिपॉज़िटरी जहाँ टेक्स्ट फ़ाइल diff होती है और बाइनरी नहीं। दोनों बदलाव पूरी तरह आपके ब्राउज़र में चलते हैं, बिना कोई इंजन डाउनलोड किए।
| OBJ | GLTF | |
|---|---|---|
| पूरा नाम | Wavefront ऑब्जेक्ट | GL Transmission Format |
| फ़ाइल एक्सटेंशन | .obj | .gltf |
| मीडिया टाइप | model/obj | model/gltf+json |
| पहली बार प्रकाशित | 1992 | 2015 |
| प्रकाशक | Wavefront Technologies | Khronos Group |
| विनिर्देश | — | glTF 2.0 |
| लाइसेंस | खुला मानक | खुला मानक |
| आज की स्थिति | मौजूदा | मौजूदा |
| ब्राउज़र में खुलता है | कोई ब्राउज़र नहीं | कोई ब्राउज़र नहीं |
| इसकी जगह विचारणीय | PLY, STL | GLB |
Blender OBJ और GLTF — दोनों पढ़ लेता है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।
दोनों का निशाना अलग काम है: OBJ का प्रोग्रामों के बीच डेटा ले जाना और एडिटिंग पर, GLTF का वेब और बनी हुई फ़ाइल सौंपना पर। इस पर सोचना बनता है, क्योंकि जिस वजह से एक मौजूद है, आम तौर पर उसी वजह से दूसरा असुविधाजनक होता है।
GLTF Khronos Group का है और 2015 से चला आ रहा है, और glTF 2.0 में तय किया गया है। Blender, three.js और Babylon.js इस फ़ॉर्मेट को पढ़ लेते है।
OBJ 1992 में आया और GLTF 2015 में। किसी को सौंपने के लिए आम तौर पर पुराना वाला ज़्यादा सुरक्षित रहता है; नया वाला वही काम कम बाइट में कर देता है।
नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।
हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।
OBJ और GLTF सामग्री का वर्णन बुनियादी तौर पर अलग-अलग तरीक़ों से करते हैं। इसलिए यह कन्वर्ज़न नक़ल नहीं, पुनर्निर्माण है: ईमानदार, पर बाइट-दर-बाइट एक जैसा नहीं। सिर्फ़ ज्यामिति। सामग्री, रंग, बनावट और एनिमेशन साथ नहीं जाते, और जो मॉडल कई बार रखा गया हो वह हर नक़ल के अपनी-अपनी जगह पर पक्की हो जाने के साथ लौटता है।
कन्वर्ज़न के लिए नहीं: वह उसी ब्राउज़र में होता है जो आपने पहले से खोल रखा है। नतीजा खोलने के लिए उसके बाद वही प्रोग्राम चाहिए जिससे आपका डिवाइस GL Transmission Format आम तौर पर दिखाता है।