OBJ

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

सादा पाठ में लिखा 3D मॉडल फ़ॉर्मेट, जिसे हर मॉडलिंग प्रोग्राम पढ़ लेता है।

OBJ है क्या

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

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

OBJ आया कहाँ से

इसे Wavefront Technologies ने 1992 में जारी किया था।

जो फ़ॉर्मेट इतने लंबे समय तक पढ़ा जाता रहा हो, उसे वह चीज़ सौंपी जा सकती है जो आपको दस साल बाद वापस चाहिए।

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

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

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

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

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

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

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

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

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

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

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

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

वह फ़ॉर्मैट जिसे सब पढ़ सकते हैं

OBJ 1992 से 3D की सबसे साझा भाषा है। हर मॉडलिंग प्रोग्राम, हर गेम इंजन, हर रेंडरर और हर ऑनलाइन व्यूअर इसे इम्पोर्ट करता है — जो किसी और मेश फ़ॉर्मैट के साथ सच नहीं। स्पेसिफ़िकेशन तीस साल पुराना है और फिर भी यही मायने रखता है।

यह सादा टेक्स्ट है, यही इसकी दूसरी ख़ूबी है। v से शुरू होने वाली पंक्ति वर्टेक्स है, f से शुरू होने वाली फ़ेस। किसी मॉडल को टेक्स्ट एडिटर में खोलकर समझा जा सकता है — 3D फ़ॉर्मैट के लिए यह असामान्य है।

MTL फ़ाइल, और आपका मॉडल स्लेटी रंग में क्यों आया

OBJ में सिर्फ़ ज्यामिति है, कुछ और नहीं। रंग, मटीरियल और टेक्सचर अलग .mtl फ़ाइल में रहते हैं जिसका नाम OBJ अपनी शुरुआती पंक्तियों में लेता है।

तो कोई मॉडल असल में एक फ़ोल्डर है। सिर्फ़ .obj भेजना — जो अक्सर होता है — पाने वाले को बिना टेक्सचर की स्लेटी ज्यामिति देता है। पूरा फ़ोल्डर भेजिए या ज़िप कीजिए।

UV निर्देशांक तय करते हैं टेक्सचर कहाँ बैठेगा

टेक्सचर एक सपाट तस्वीर है, और मॉडल को बताना पड़ता है कि उस तस्वीर का कौन-सा हिस्सा सतह के किस हिस्से पर है। यही UV निर्देशांक हैं — हर वर्टेक्स के लिए एक जोड़ा संख्या।

ये OBJ में ही स्टोर होते हैं, तो मटीरियल न आने पर भी बच जाते हैं। अगर UV बरक़रार हैं, कोई टेक्सचर दोबारा जोड़ना दो मिनट का काम है।

कोई इकाई नहीं, ऊपर किधर है इस पर कोई सहमति नहीं

OBJ की संख्याओं के साथ कोई आयाम जुड़ा नहीं। दस इकाई चौड़ा क्यूब दस मिलीमीटर, सेंटीमीटर या मीटर हो सकता है, और फ़ाइल कुछ नहीं बताती।

दिशा भी वैसी ही कहानी है — कुछ सॉफ़्टवेयर Y को ऊपर मानते हैं, कुछ Z को। दोनों समस्याएँ इम्पोर्ट पर स्केल और घुमाकर सेकंडों में ठीक होती हैं।

टेक्स्ट पढ़ने लायक़ है और बड़ा भी

हर निर्देशांक को दशमलव टेक्स्ट में स्टोर करना काफ़ी जगह लेता है। वही मेश बाइनरी STL या PLY में तीन से पाँच गुना छोटी होती है।

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

OBJ जो नहीं ढो सकता

कोई एनिमेशन नहीं, कोई रिगिंग या हड्डियाँ नहीं, कोई सीन-पदानुक्रम नहीं, कोई कैमरा या लाइट नहीं, कोई आधुनिक मटीरियल मॉडल नहीं — MTL फ़ॉर्मैट नब्बे के दशक की शुरुआत की शेडिंग विधि बताता है।

यही वजह है कि glTF मौजूद है और गेम पाइपलाइन उसे इस्तेमाल करते हैं। OBJ किसी स्थिर आकृति को एक प्रोग्राम से दूसरे तक पहुँचाने के लिए है, और यह उसमें किसी से बेहतर है।

प्रिंटिंग के लिए OBJ तैयार करना

स्लाइसर OBJ स्वीकार करते हैं, और ज्यामिति साफ़ तौर पर STL में बदल जाती है क्योंकि STL, OBJ का ही एक सख़्त उपसमूह है — सिर्फ़ त्रिकोण।

रेंडरिंग के लिए बने मॉडल अक्सर वॉटरटाइट नहीं होते — हर किनारा ठीक दो फ़ेस से साझा, कोई छेद नहीं। किसी रिपेयर टूल से पहले गुज़ारना प्रिंटर पर चार घंटे बाद समस्या मिलने से तेज़ है।

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

OBJ फ़ॉर्मेट की पहचान और उसका स्रोत।
एक्सटेंशन.obj
मीडिया टाइपmodel/obj
प्रकाशकWavefront Technologies
पहली बार प्रकाशित1992

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

मेरा OBJ मॉडल स्लेटी और बिना टेक्सचर क्यों है

रंग और टेक्सचर OBJ में नहीं हैं — वे साथी .mtl फ़ाइल में रहते हैं, और टेक्सचर तस्वीरें अलग फ़ाइलें हैं। सिर्फ़ .obj भेजने से पाने वाले को सादी ज्यामिति मिलती है — पूरा फ़ोल्डर भेजिए या ज़िप कीजिए।

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

लगभग कोई भी 3D प्रोग्राम खोलेगा — Blender, MeshLab, Windows 3D Viewer। यह सादा टेक्स्ट भी है, तो टेक्स्ट एडिटर कच्चे वर्टेक्स और फ़ेस दिखा देता है।

मेरा मॉडल ग़लत साइज़ पर क्यों इम्पोर्ट होता है

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

मेरा मॉडल एक तरफ़ लेटा हुआ क्यों है

कुछ सॉफ़्टवेयर Y को ऊपर मानते हैं, कुछ Z को, और फ़ॉर्मैट कोई पक्ष नहीं लेता। इम्पोर्ट पर घुमाना पूरा उपाय है।

OBJ और STL में क्या फ़र्क़ है

OBJ टेक्सचर निर्देशांक, मटीरियल और किसी भी आकार के बहुभुज ढो सकता है; STL सिर्फ़ त्रिकोण रखता है। STL प्रिंटिंग फ़ॉर्मैट है, OBJ इंटरचेंज फ़ॉर्मैट।

क्या OBJ फ़ाइल में एनिमेशन हो सकता है

नहीं। इसमें सिर्फ़ एक स्थिर मेश होती है — कोई हड्डी नहीं, कोई रिगिंग नहीं। एनिमेटेड या रिग्ड मॉडल के लिए glTF सही फ़ॉर्मैट है।