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

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

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

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

glTF से OBJ indirection में एक कदम नीचे क्यों है

दोनों फ़ॉर्मेट टेक्स्ट हैं, और यह समानता भ्रामक है। एक .gltf खोलिए तो एक JSON document मिलता है जिसमें vertex डेटा एक base64 string है, buffer views से byte offsets से काटा हुआ, accessors से पढ़ा हुआ। एक coordinate तक पहुँचने के लिए चार indirection हैं।

OBJ में इनमें से कुछ नहीं। v से शुरू होने वाली line एक vertex है और उसके बाद के तीन नंबर उसके coordinate हैं। यही पूरी grammar है, और यही वजह है OBJ हर उस फ़ॉर्मेट से ज़्यादा टिका रहा जिसने इसकी जगह लेनी चाही जब काम निरीक्षण का था।

यह converter जो OBJ बनाता है उसकी सटीक शक्ल

ऊपर एक comment line लेखक बताती है, फिर हर mesh के लिए — glTF से नाम लाती एक o line, v lines की एक लड़ी, और f lines की एक लड़ी। कुछ और नहीं दिखता — कोई vt नहीं, कोई vn नहीं, कोई mtllib नहीं।

इसका मतलब है इसके लिए parser लगभग छह लाइन का होगा, और wc, grep व awk जैसे टूल सीधे काम आते हैं। f lines गिनना triangle count देता है; v lines गिनना vertex count।

एक-आधारित index, पूरी glTF में गिने गए

OBJ face indices एक से शुरू होते हैं। वे पूरी फ़ाइल में लगातार भी चलते हैं, हर o group पर दोबारा शुरू नहीं होते — यही वह विवरण है जिसे ज़्यादातर हाथ से लिखे parser ग़लत पकड़ते हैं।

अगर आप फ़ाइल वापस पढ़ रहे हैं, नियम है — अब तक देखी v lines की गिनती जोड़िए और zero-based index पाने के लिए एक घटाइए।

OBJ में coordinates glTF scene से world coordinates हैं

glTF node tree किसी mesh को matrix की एक श्रृंखला से कहीं भी रख सकता है, और एक ही mesh को कई जगह भी। OBJ के पास न scene graph है, न instancing, इसलिए रूपांतरण tree को resolve करता है।

जो नतीजा नापने वाले के लिए अच्छा है — जो संख्या आप पढ़ रहे हैं वह वहीं है जहाँ ज्यामिति असल में है, transform से पहले नहीं। फ़ाइल के आकार के लिए नतीजा है कि दोहराई गई instances दोहराया gadhaव vertex data बन जाती हैं।

glTF document में जो OBJ नहीं बता सकता

Materials, textures, images, samplers, UV coordinates, normals, tangents, vertex colours, morph targets, skins, animation channels, cameras, lights और कोई भी extension। इनमें से कुछ भी न पढ़ा जाता है न लिखा।

OBJ सैद्धांतिक रूप से UV और normals रख सकता है, और एक अलग MTL material बता सकती। यह converter दोनों नहीं लिखता, क्योंकि यह छह फ़ॉर्मेट के बीच ज्यामिति ले जाता है और जो डेटा कभी निकाला ही नहीं गया उससे material file गढ़ना ग़लत होगा।

सिर्फ़ triangle ज्यामिति glTF से OBJ में पार होती है

glTF primitives एक mode घोषित करते हैं। Mode 4 triangle list है और यही पढ़ी जाती है; points, lines, triangle strips और fans छोड़ दी जाती हैं। सिर्फ़ line geometry वाली फ़ाइल एक संदेश के साथ रुकती है, जो ख़ाली OBJ से ज़्यादा उपयोगी है।

Draco-compressed geometry नाम बताते हुए रुकती है, क्योंकि KHR_draco_mesh_compression का decoder यहाँ नहीं है। अगर आपकी glTF size-optimised export pipeline से आई, यही सबसे बड़ी वजह होगी।

OBJ में vertex count glTF accessor count से मेल खाता है

बिल्कुल, हर mesh के लिए। इस रास्ते पर कुछ नहीं मिलाया जाता — POSITION accessor element-दर-element v lines में डिकोड होता है उसी क्रम में, और index accessor f entries बनती है।

यह गिनती एक इस्तेमाल लायक़ जाँच बनाती है — अगर आपके टूल ने 48,213 vertices बताए और OBJ में 48,213 v lines हैं, कुछ छूटा नहीं। इसका यह भी मतलब है coincident vertices बचे रहते हैं।

आकार और सटीकता जब glTF floats OBJ दशमलव बनते हैं

glTF buffer में float32 coordinate चार बाइट का है। वही संख्या दशमलव पाठ के रूप में लिखी जाना आम तौर पर आठ से अठारह अक्षर लेती है, इसलिए OBJ glTF के geometry हिस्से से कहीं बड़ी होती है।

सटीकता truncate नहीं होती — values उतनी सटीकता पर छापे जाते हैं जितनी JavaScript को float round-trip करने के लिए चाहिए, इसलिए बाहर जाते वक़्त चुपचाप कुछ round नहीं होता।

कब glTF को वैसे ही छोड़ दें

अगर model को render करना है, glTF रखिए। जो इसे देखने लायक़ बनाता है — materials, textures, animation — सब कुछ इस रूपांतरण द्वारा फेंके गए हिस्से में है, और हर आधुनिक viewer इसे सीधे पढ़ता है।

बदलिए जब model asset की बजाय डेटा है — जब आपको भरोसेमंद triangle count चाहिए, ख़ुद नापा bounding box, दो exports के बीच diff, या अपने लिखे code का इनपुट।

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

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

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

GLTF और OBJ की तुलना
GLTFOBJ
पूरा नामGL Transmission FormatWavefront ऑब्जेक्ट
फ़ाइल एक्सटेंशन.gltf.obj
मीडिया टाइपmodel/gltf+jsonmodel/obj
पहली बार प्रकाशित20151992
प्रकाशकKhronos GroupWavefront Technologies
विनिर्देशglTF 2.0
लाइसेंसखुला मानकखुला मानक
आज की स्थितिमौजूदामौजूदा
ब्राउज़र में खुलता हैकोई ब्राउज़र नहींकोई ब्राउज़र नहीं
इसकी जगह विचारणीयGLBPLY, STL

नतीजा खोलना

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

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

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

GLTF Khronos Group का फ़ॉर्मेट है, जो 2015 में आया। यह glTF 2.0 में तय किया गया है, और अगर फ़ाइल को उस औज़ार से ज़्यादा जीना है जिसने उसे लिखा, तो यह बात क़ीमती है।

OBJ Wavefront Technologies का है और 1992 से चला आ रहा है। Blender, MeshLab और Maya इस फ़ॉर्मेट को पढ़ लेते है।

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

GLTF से OBJ: आम सवाल

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

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

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

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

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

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

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

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

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