आँकड़ों और विज्ञापन के लिए कुकीज़
हम आँकड़ों और विज्ञापन के लिए कुकीज़ इस्तेमाल करते हैं, दोनों Google को जाती हैं। मना करने से आपको दिखने वाली किसी चीज़ में कोई फ़र्क़ नहीं पड़ता।निजता पेज पढ़ें
OBJ
सादा पाठ में लिखा 3D मॉडल फ़ॉर्मेट, जिसे हर मॉडलिंग प्रोग्राम पढ़ लेता है।
OBJ
OBJ एक सादा टेक्स्ट फ़ॉर्मेट है, जो किसी भी एडिटर में खुल जाता है। यह पिक्सेल के बजाय आकृतियाँ और निर्देशांक सहेजता है, इसलिए किसी भी आकार में साफ़ रहता है — होर्डिंग जितना बड़ा किया गया लोगो भी कुछ नहीं खोता। इसका इस्तेमाल प्रोग्रामों के बीच डेटा ले जाना और एडिटिंग के लिए होता है।
एक्सटेंशन .obj है और पूरा नाम Wavefront Object। दोनों उतना नहीं बताते जितना यह कि फ़ाइल अंदर क्या-क्या रख सकती है — और इस पन्ने का बाक़ी हिस्सा इसी के बारे में है।
इसे Wavefront Technologies ने 1992 में जारी किया था।
जो फ़ॉर्मेट इतने लंबे समय तक पढ़ा जाता रहा हो, उसे वह चीज़ सौंपी जा सकती है जो आपको दस साल बाद वापस चाहिए।
यह पूरा प्रकाशित है, इसलिए कोई भी इसे देखकर अंदाज़ा लगाने के बजाय दस्तावेज़ पढ़कर लागू कर सकता है। यही वजह है कि यह फ़ॉर्मेट इतने सारे प्रोग्रामों में मिलता है, और यही वजह है कि बीस साल पहले लिखी गई फ़ाइलें आज भी खुल जाती हैं। पर विनिर्देश का प्रकाशित होना और उसका रॉयल्टी-मुक्त होना एक बात नहीं है: जहाँ फ़ॉर्मेट किसी कोडेक को अपने अंदर लपेटता है, वहाँ पेटेंट का लाइसेंस एक अलग सवाल है, और मानक उसका जवाब नहीं देता।
OBJ फ़ाइल अपना अंदरूनी हिस्सा हूबहू सहेजती है। दोबारा सहेजने से कुछ नहीं बदलता, इसलिए इसे जितनी बार चाहें खोलिए, बदलिए और फिर से सहेजिए — नुक़सान जमा नहीं होता। यही बात इसे सौंपने का नहीं, काम करने का फ़ॉर्मेट बनाती है।
Blender, MeshLab और Maya इसे पढ़ते हैं, और इसी तरह के ज़्यादातर दूसरे प्रोग्राम भी।
फ़ाइल न खुले तो कसूर फ़ॉर्मेट का शायद ही कभी होता है — अक्सर प्रोग्राम ही फ़ॉर्मेट से पुराना होता है। किसी पुरानी चीज़ में बदल लेना इससे निकलने का भरोसेमंद रास्ता है, और इस वेबसाइट का बाक़ी हिस्सा इसी के लिए है।
इसे कोई भी ब्राउज़र नहीं पढ़ता।
इसे बदलने की सबसे आम वजह यही है: फ़ॉर्मेट ख़राब है, ऐसा नहीं — बात यह है कि जहाँ आप फ़ाइल दिखाना चाहते हैं वह जगह उसे पढ़ ही नहीं सकती।
OBJ इसलिए बना है कि इसे खोला और बदला जाए। जब तक काम चल रहा है फ़ाइल इसी फ़ॉर्मेट में रखिए, और जब भी बनी हुई प्रति चाहिए हो, इसी से निर्यात कीजिए।
OBJ 1992 से 3D की सबसे साझा भाषा है। हर मॉडलिंग प्रोग्राम, हर गेम इंजन, हर रेंडरर और हर ऑनलाइन व्यूअर इसे इम्पोर्ट करता है — जो किसी और मेश फ़ॉर्मैट के साथ सच नहीं। स्पेसिफ़िकेशन तीस साल पुराना है और फिर भी यही मायने रखता है।
यह सादा टेक्स्ट है, यही इसकी दूसरी ख़ूबी है। v से शुरू होने वाली पंक्ति वर्टेक्स है, f से शुरू होने वाली फ़ेस। किसी मॉडल को टेक्स्ट एडिटर में खोलकर समझा जा सकता है — 3D फ़ॉर्मैट के लिए यह असामान्य है।
OBJ में सिर्फ़ ज्यामिति है, कुछ और नहीं। रंग, मटीरियल और टेक्सचर अलग .mtl फ़ाइल में रहते हैं जिसका नाम OBJ अपनी शुरुआती पंक्तियों में लेता है।
तो कोई मॉडल असल में एक फ़ोल्डर है। सिर्फ़ .obj भेजना — जो अक्सर होता है — पाने वाले को बिना टेक्सचर की स्लेटी ज्यामिति देता है। पूरा फ़ोल्डर भेजिए या ज़िप कीजिए।
टेक्सचर एक सपाट तस्वीर है, और मॉडल को बताना पड़ता है कि उस तस्वीर का कौन-सा हिस्सा सतह के किस हिस्से पर है। यही UV निर्देशांक हैं — हर वर्टेक्स के लिए एक जोड़ा संख्या।
ये OBJ में ही स्टोर होते हैं, तो मटीरियल न आने पर भी बच जाते हैं। अगर UV बरक़रार हैं, कोई टेक्सचर दोबारा जोड़ना दो मिनट का काम है।
OBJ की संख्याओं के साथ कोई आयाम जुड़ा नहीं। दस इकाई चौड़ा क्यूब दस मिलीमीटर, सेंटीमीटर या मीटर हो सकता है, और फ़ाइल कुछ नहीं बताती।
दिशा भी वैसी ही कहानी है — कुछ सॉफ़्टवेयर Y को ऊपर मानते हैं, कुछ Z को। दोनों समस्याएँ इम्पोर्ट पर स्केल और घुमाकर सेकंडों में ठीक होती हैं।
हर निर्देशांक को दशमलव टेक्स्ट में स्टोर करना काफ़ी जगह लेता है। वही मेश बाइनरी STL या PLY में तीन से पाँच गुना छोटी होती है।
यह बहुत अच्छे से संपीड़ित भी होती है, उसी वजह से — ज़िप की गई OBJ अपने ही साइज़ का एक अंश होती है, क्योंकि दशमलव टेक्स्ट में भरपूर दोहराव है।
कोई एनिमेशन नहीं, कोई रिगिंग या हड्डियाँ नहीं, कोई सीन-पदानुक्रम नहीं, कोई कैमरा या लाइट नहीं, कोई आधुनिक मटीरियल मॉडल नहीं — MTL फ़ॉर्मैट नब्बे के दशक की शुरुआत की शेडिंग विधि बताता है।
यही वजह है कि glTF मौजूद है और गेम पाइपलाइन उसे इस्तेमाल करते हैं। OBJ किसी स्थिर आकृति को एक प्रोग्राम से दूसरे तक पहुँचाने के लिए है, और यह उसमें किसी से बेहतर है।
स्लाइसर OBJ स्वीकार करते हैं, और ज्यामिति साफ़ तौर पर STL में बदल जाती है क्योंकि STL, OBJ का ही एक सख़्त उपसमूह है — सिर्फ़ त्रिकोण।
रेंडरिंग के लिए बने मॉडल अक्सर वॉटरटाइट नहीं होते — हर किनारा ठीक दो फ़ेस से साझा, कोई छेद नहीं। किसी रिपेयर टूल से पहले गुज़ारना प्रिंटर पर चार घंटे बाद समस्या मिलने से तेज़ है।
| एक्सटेंशन | .obj |
|---|---|
| मीडिया टाइप | model/obj |
| प्रकाशक | Wavefront Technologies |
| पहली बार प्रकाशित | 1992 |
रंग और टेक्सचर OBJ में नहीं हैं — वे साथी .mtl फ़ाइल में रहते हैं, और टेक्सचर तस्वीरें अलग फ़ाइलें हैं। सिर्फ़ .obj भेजने से पाने वाले को सादी ज्यामिति मिलती है — पूरा फ़ोल्डर भेजिए या ज़िप कीजिए।
लगभग कोई भी 3D प्रोग्राम खोलेगा — Blender, MeshLab, Windows 3D Viewer। यह सादा टेक्स्ट भी है, तो टेक्स्ट एडिटर कच्चे वर्टेक्स और फ़ेस दिखा देता है।
फ़ॉर्मैट में कोई इकाई नहीं। दस इकाई का क्यूब दस मिलीमीटर या दस मीटर हो सकता है, और हर प्रोग्राम अपना अनुमान लगाता है। इम्पोर्ट पर स्केल करना पूरा इलाज है।
कुछ सॉफ़्टवेयर Y को ऊपर मानते हैं, कुछ Z को, और फ़ॉर्मैट कोई पक्ष नहीं लेता। इम्पोर्ट पर घुमाना पूरा उपाय है।
OBJ टेक्सचर निर्देशांक, मटीरियल और किसी भी आकार के बहुभुज ढो सकता है; STL सिर्फ़ त्रिकोण रखता है। STL प्रिंटिंग फ़ॉर्मैट है, OBJ इंटरचेंज फ़ॉर्मैट।
नहीं। इसमें सिर्फ़ एक स्थिर मेश होती है — कोई हड्डी नहीं, कोई रिगिंग नहीं। एनिमेटेड या रिग्ड मॉडल के लिए glTF सही फ़ॉर्मैट है।