OBJ को GLTF में बदलें

यहाँ आप OBJ को GLTF में बदलते हैं, मुफ़्त और बिना खाते के: फ़ाइल ऊपर छोड़िए और कुछ ही सेकंड में नतीजा डाउनलोड के लिए तैयार मिलेगा। कन्वर्ज़न आपके अपने ब्राउज़र के भीतर होता है, इसलिए फ़ाइल कभी अपलोड नहीं होती। यह Windows, macOS और Linux पर वैसे ही चलता है जैसे iPhone और Android पर, और कनेक्शन काट देने पर भी चलता रहता है।

  • कहाँ चलता है आपके ब्राउज़र में। फ़ाइल कभी अपलोड नहीं होती।
  • नए सिरे से बना GLTF के काम करने का तरीक़ा OBJ से अलग है। यह किसी लॉसी कोडेक जैसा धीरे-धीरे होने वाला नुक़सान नहीं है: GLTF जो कुछ व्यक्त कर सकता है, वह हूबहू उतर आता है — और जिसका वहाँ कोई समतुल्य नहीं, वह पूरी तरह रह जाता है।
  • फ़ाइल आकार की सीमा हर फ़ाइल 100 MB तक, मुफ़्त, बिना खाते के।
  • जानने लायक़ सिर्फ़ ज्यामिति। सामग्री, रंग, बनावट और एनिमेशन साथ नहीं जाते, और जो मॉडल कई बार रखा गया हो वह हर नक़ल के अपनी-अपनी जगह पर पक्की हो जाने के साथ लौटता है।

एक बार में 100 फ़ाइलें। फ़ॉर्मेट अलग-अलग हों तो भी चलेगा।

glTF टूलचेन में जाने का रास्ता है OBJ to glTF

आधुनिक 3D वेब पाइपलाइन में लगभग हर काम की चीज़ glTF को इनपुट मानती है। gltf-transform इसे छाँटता, वेल्ड करता और कंप्रेस करता है; Khronos validator इसे जाँचता है; three.js और Babylon.js इसे इस्तेमाल करते हैं। OBJ इस सबसे बाहर है, और उसे भीतर लाने का पहला क़दम ऐसा बदलाव है जो यह टूल स्वीकार सकें।

इस चरण पर .glb की बजाय .gltf चुनने की वजह यह है कि JSON रूप वही है जिसे आप पढ़ और बदल सकते हैं। GLB वह अंतिम कलाकृति है जो पाइपलाइन के आख़िर में बनती है, मैटीरियल सही होने और कंप्रेशन पास चलने के बाद। यह पेज उस पाइपलाइन की शुरुआत के लिए है।

OBJ से लिखे glTF दस्तावेज़ की बनावट

वर्ज़न 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 के भीतर base64 डेटा URI के तौर पर आता है

glTF vertex डेटा रखने के तीन तरीक़े देता है: अलग .bin फ़ाइल, buffer के uri फ़ील्ड में base64 डेटा URI, या GLB का बाइनरी चंक। बदलाव एक फ़ाइल बनाता है, तो डेटा URI इकलौता विकल्प है जो नतीजे को स्वयं-निहित रखता है, और यही लिखा जाता है।

दो नतीजे निकलते हैं। फ़ाइल उन्हीं बाइट के बाइनरी संग्रह से क़रीब एक तिहाई बड़ी है, क्योंकि base64 हर तीन बाइट के लिए चार अक्षर लेता है — काम के दस्तावेज़ के लिए स्वीकार्य, डिलीवरी के लिए बेकार। और glTF पढ़ने वाला हर टूल इसे संभालता है।

बदली गई glTF में मैटीरियल जोड़ना एक छोटा संपादन है

दस्तावेज़ में कोई materials ऐरे नहीं, क्योंकि OBJ की MTL फ़ाइल नहीं पढ़ी जाती। एक जोड़ना चार लाइन का है: pbrMetallicRoughness ब्लॉक और चार संख्या के baseColorFactor वाला ऑब्जेक्ट रखता materials ऐरे, फिर primitive पर उसका इंडेक्स देता material property।

इससे बिना geometry छुए किसी भी glTF व्यूअर में रंगीन, सही ढंग से जलाया मॉडल मिलता है। टेक्सचर बड़ा काम है, क्योंकि उन्हें तस्वीरें, sampler, texture और — ख़ासकर — TEXCOORD_0 डेटा चाहिए जो यह बदलाव नहीं बनाता।

OBJ ग्रुप नाम glTF JSON में क्या करते हैं

हर o या g लाइन नया ग्रुप शुरू करती है, और हर ग्रुप नामित mesh बनता है। यह नाम इकलौती ग़ैर-geometric जानकारी है जो बदलाव से पार जाती है, और जिस दस्तावेज़ को आप संपादित करने वाले हैं उसमें यही फ़र्क़ है सही हिस्सा ढूँढने और नोड गिनने के बीच।

स्रोत में बिना नाम वाले ग्रुप को नतीजे में भी नाम नहीं मिलता। अगर बाद में glTF को हाथ से पढ़ना या संपादित करना है, पहले OBJ में ग्रुप के नाम रखिए — वहाँ टेक्स्ट संपादन बाद में JSON में गुमनाम mesh मिलाने से आसान है।

OBJ से मिली glTF की जाँच

नतीजा स्पेसिफ़िकेशन के उन हिस्सों के हिसाब से लिखा जाता है जिन्हें validator असल में लागू करते हैं। Buffer view इतने पैड होते हैं कि हर accessor का byte offset उसके component size का गुणक हो, जो माँग है, शिष्टाचार नहीं। हर POSITION accessor में min और max होता है, जो ज़रूरी है।

Stride शून्य को कसकर पैक माना जाता है, element size के बराबर stride नहीं, जो स्पेसिफ़िकेशन कहता है। Khronos glTF Validator चलाने पर दिलचस्प आउटपुट त्रुटि नहीं, बल्कि यह info-स्तर का नोट है कि mesh में normal नहीं हैं — जो सच है।

कोई भी glTF लिखे जाने से पहले OBJ कैसे पढ़ी जाती है

चार या ज़्यादा कोने वाले face पहले कोने से fan-triangulated होते हैं। यह उत्तल quad और n-gon के लिए सही है, जो व्यवहार में इन फ़ाइलों में होते हैं, और अवतल face पर एक-दूसरे को काटते triangle बना सकता है।

नकारात्मक face इंडेक्स पढ़ते समय हल किए जाते हैं, क्योंकि वे सबसे हाल के vertex से पीछे गिनते हैं। फिर vertex हर ग्रुप में छह दशमलव अंक तक वेल्ड होते हैं, तो जो ग्रुप चार-हज़ार-vertex फ़ाइल में से बारह का इशारा करता है वह glTF में बारह vertex रखता है, चार हज़ार नहीं।

यह glTF बराबर की GLB से बड़ी क्यों है

बफ़र पर base64 का फैलाव, प्लस उसके चारों ओर सुव्यवस्थित JSON। सिर्फ़-geometry मॉडल के लिए बफ़र ही हावी है, तो GLB से क़रीब एक तिहाई ज़्यादा बाइट की उम्मीद रखिए, किसी कंप्रेशन से पहले।

पाइपलाइन के इस बिंदु पर यह सही सौदा है और आख़िर में ग़लत। काम की आम शक्ल है: यहाँ glTF में बदलिए, संपादित या प्रोसेस कीजिए, फिर GLB को अंतिम कलाकृति के तौर पर बनाइए — वापस बदलकर या gltf-transform से लिखवाकर, जहाँ Draco या meshopt कंप्रेशन भी होता है।

OBJ को सीधे GLB में कब बदलें

अगर बदलाव और डिलीवरी के बीच फ़ाइल के साथ कुछ नहीं होना, सीधे GLB पर जाइए। यह छोटी है, एक रिक्वेस्ट है, और जिस संपादन-योग्यता के लिए आप अतिरिक्त बाइट की क़ीमत चुका रहे हैं वह बेमानी है अगर कोई खोलता ही नहीं।

glTF तब चुनिए जब अगला क़दम बाक़ी है: कोई मैटीरियल जोड़ना, कोई validator संतुष्ट करना, कोई transform पास चलाना, या ऐसा रिपॉज़िटरी जहाँ टेक्स्ट फ़ाइल diff होती है और बाइनरी नहीं। दोनों बदलाव पूरी तरह आपके ब्राउज़र में चलते हैं, बिना कोई इंजन डाउनलोड किए।

OBJ को GLTF में ऐसे बदलें

  1. अपनी OBJ फ़ाइल इस पेज पर छोड़ें, या चुनने के लिए दबाएँ।
  2. लक्ष्य के रूप में GLTF चुनें। कन्वर्ज़न आपके ब्राउज़र में होता है और फ़ाइल अपलोड नहीं होती।
  3. तैयार GLTF फ़ाइल डाउनलोड कर लें।

OBJ या GLTF: क्या बदलता है

OBJ और GLTF की तुलना
OBJGLTF
पूरा नामWavefront ऑब्जेक्टGL Transmission Format
फ़ाइल एक्सटेंशन.obj.gltf
मीडिया टाइपmodel/objmodel/gltf+json
पहली बार प्रकाशित19922015
प्रकाशकWavefront TechnologiesKhronos Group
विनिर्देशglTF 2.0
लाइसेंसखुला मानकखुला मानक
आज की स्थितिमौजूदामौजूदा
ब्राउज़र में खुलता हैकोई ब्राउज़र नहींकोई ब्राउज़र नहीं
इसकी जगह विचारणीयPLY, STLGLB

नतीजा खोलना

Blender OBJ और GLTF — दोनों पढ़ लेता है, इसलिए आप नतीजे को असली फ़ाइल के बग़ल में रखकर देख सकते हैं, बिना दूसरा प्रोग्राम खोले।

कौन-सा फ़ॉर्मेट किस काम के लिए है

दोनों का निशाना अलग काम है: OBJ का प्रोग्रामों के बीच डेटा ले जाना और एडिटिंग पर, GLTF का वेब और बनी हुई फ़ाइल सौंपना पर। इस पर सोचना बनता है, क्योंकि जिस वजह से एक मौजूद है, आम तौर पर उसी वजह से दूसरा असुविधाजनक होता है।

GLTF Khronos Group का है और 2015 से चला आ रहा है, और glTF 2.0 में तय किया गया है। Blender, three.js और Babylon.js इस फ़ॉर्मेट को पढ़ लेते है।

OBJ 1992 में आया और GLTF 2015 में। किसी को सौंपने के लिए आम तौर पर पुराना वाला ज़्यादा सुरक्षित रहता है; नया वाला वही काम कम बाइट में कर देता है।

OBJ से GLTF: आम सवाल

क्या मेरी OBJ फ़ाइल कहीं अपलोड होती है?

नहीं। यह कन्वर्ज़न पूरी तरह आपके ब्राउज़र में होता है, इसलिए फ़ाइल आपके डिवाइस से बाहर नहीं जाती। आप ख़ुद जाँच सकते हैं: डेवलपर टूल्स का नेटवर्क टैब खोलिए और कुछ बदल कर देखिए। आपको पेज ख़ुद दिखेगा और आँकड़ों तथा विज्ञापन के वे अनुरोध दिखेंगे जिनसे इस सेवा का ख़र्च निकलता है — और एक भी ऐसा अनुरोध नहीं जो आपकी फ़ाइल साथ ले जा रहा हो।

क्या OBJ को GLTF में बदलना मुफ़्त है?

हाँ। न खाता, न वॉटरमार्क, और न कोई रोज़ का कोटा जो ख़त्म हो: यह आपकी अपनी मशीन पर चलता है, इसलिए आप जितनी बार चाहें लौट सकते हैं। ब्राउज़र 100 MB तक की फ़ाइलें सँभालता है, एक बार में 100।

OBJ को GLTF में बदलने पर क्या गुणवत्ता जाती है?

OBJ और GLTF सामग्री का वर्णन बुनियादी तौर पर अलग-अलग तरीक़ों से करते हैं। इसलिए यह कन्वर्ज़न नक़ल नहीं, पुनर्निर्माण है: ईमानदार, पर बाइट-दर-बाइट एक जैसा नहीं। सिर्फ़ ज्यामिति। सामग्री, रंग, बनावट और एनिमेशन साथ नहीं जाते, और जो मॉडल कई बार रखा गया हो वह हर नक़ल के अपनी-अपनी जगह पर पक्की हो जाने के साथ लौटता है।

GLTF फ़ाइल खोलने के लिए क्या मुझे कुछ इंस्टॉल करना होगा?

कन्वर्ज़न के लिए नहीं: वह उसी ब्राउज़र में होता है जो आपने पहले से खोल रखा है। नतीजा खोलने के लिए उसके बाद वही प्रोग्राम चाहिए जिससे आपका डिवाइस GL Transmission Format आम तौर पर दिखाता है।

इन फ़ॉर्मेट के बारे में और