क्या 3 डी ग्राफिक प्रतिनिधित्व के लिए एक मानक विनिर्देश है?


12

मैं कंप्यूटर ग्राफिक्स पर एक किताब पढ़ रहा हूँ , और कुछ बिंदु पर, यह एक 3D मॉडल दिखाता है, जो एक .dat फ़ाइल से बनाया गया है।

.Dat फ़ाइल निर्माण के लिए यहां कुछ नियम दिए गए हैं:

  • शीर्ष पदों / चेहरों की सूची से बना है
  • लिखित प्रतिवाद
  • चेहरे एक डॉट () के साथ समाप्त होते हैं
  • अंश भी स्वीकार्य हैं

मैं जानना चाहता हूं कि क्या यह मानक है, और यदि नहीं, तो 3 डी ऑब्जेक्ट को परिभाषित करने का मानक तरीका क्या है।

इसके अलावा, अगर कोई विनिर्देश है, तो इसे किसने परिभाषित किया है और इसे कहां खोजना है?

जवाबों:


8

जब फ़ाइल स्वरूपों के बारे में बात की जाती है, तो हम 3D मॉडल / ज्यामिति से संबंधित कुछ डेटा को जारी रखने के बारे में बात कर रहे हैं। 3 डी ज्यामिति को बनाए रखने के लिए फ़ाइल स्वरूपों पर कोई सार्वभौमिक मानक नहीं है। दूसरों की तुलना में अधिक प्रभावी कुछ ही प्रारूप हैं।

जिस तरह यह इमेज फाइल फॉर्मेट के साथ है, पीएनजी और जेपीईजी आज वहां सबसे आम प्रारूप हैं, लेकिन एक या दूसरे का उपयोग करने पर आवेदनों के बीच कोई सार्वभौमिक समझौता नहीं है। प्रत्येक ऐप अपने उद्देश्यों के लिए सबसे अच्छा फिट का उपयोग करता है।

ऐसा ही 3 डी डेटा स्टोर करने वाले फ़ाइल स्वरूपों के साथ होता है। प्रत्येक 3 डी मॉडलिंग सॉफ्टवेयर में आम तौर पर एक या एक पसंदीदा प्रारूप का एक सेट होगा। अधिकांश वास्तव में कस्टम प्रारूपों को परिभाषित करते हैं जो केवल उपकरण के विशिष्ट संस्करण के साथ काम करते हैं। यह कई कारणों से हो सकता है, एप्लिकेशन के आंतरिक कामकाज को सरल बनाने से, या फाइलों को तेजी से लोड करना, उपयोगकर्ता को उद्देश्य से किसी दिए गए टूल से बांधना।

.datआपके द्वारा वर्णित यह प्रारूप पुस्तक के लेखकों द्वारा बनाया गया एक कस्टम प्रारूप है, जिसे संभवतः सरलता को ध्यान में रखकर बनाया गया था। यह वेवफ्रंट ओबीजे प्रारूप के समान एक पाठ फ़ाइल है , जो बदले में स्थिर ज्यामिति के भंडारण के लिए एक बहुत लोकप्रिय प्रारूप है, हालांकि अब तक थोड़ा पुराना है। कोई कह सकता है कि .OBJप्रारूप .BMP3D मॉडल स्वरूपों का है।

अन्य लोकप्रिय 3 डी मॉडल प्रारूपों में शामिल हैं:

और बहुत सारे। अधिक सामान्य स्पष्टीकरण यहाँ

यह भी ध्यान दें कि मैंने शुरुआत में कहा था कि ये ऑफलाइन स्टोरेज पर 3D मॉडल या ज्योमेट्री को स्टोर करने / बनाए रखने के लिए प्रारूप हैं। इसका मतलब यह नहीं है (और यह आमतौर पर ऐसा नहीं है) कि जो एप्लिकेशन उनका उपयोग करते हैं, वे फ़ाइल के समान लेआउट का उपयोग करके डेटा को आंतरिक रूप से मेमोरी में संग्रहीत करेंगे। आम तौर पर, इस तरह का डेटा फ़ाइल से लोड होने के बाद बहुत सारे प्रसंस्करण से गुजरना होगा, जब तक कि यह स्क्रीन पर प्रदर्शित न हो।


1
"आम तौर पर, इस तरह का डेटा फ़ाइल से लोड होने के बाद बहुत सारे प्रसंस्करण से गुजरना होगा, जब तक कि यह स्क्रीन पर प्रदर्शित न हो।" एक छवि की तरह एक पिक्सेल सरणी में तब्दील होने से पहले स्क्रीन पर धकेल दिया जाता है, भले ही मूल प्रारूप क्या था। (हार्डवेयर संपीड़न के बावजूद)
शाफ़्ट सनकी

@ratchetfreak लेकिन 3 डी प्रारूपों के सभी उपयोग स्क्रीन पर समाप्त नहीं होते हैं।
जूजा २०

BMP, एक द्विआधारी प्रारूप है, OBJ के लिए एक अच्छा समकक्ष नहीं है। एक बेहतर मैच XPM होगा , जो कि टेक्स्टुअल है।
रुस्लान

5

3 डी मॉडल के लिए कोई मानक प्रारूप नहीं है। कुछ सामान्य लोगों को ग्लैम्पर्ट के उत्तर में सूचीबद्ध किया गया है , इस एसई उत्तर में अधिक पाया जा सकता है ।

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

दूसरी ओर, यदि रेंडर करना आपकी मुख्य चिंता नहीं है और संपादन आपके लिए अधिक महत्वपूर्ण है, तो आप संपादन के लिए और अधिक अनुकूल स्वरूप पर विचार कर सकते हैं, जैसे कि पंखों वाला किनारा । एक सामान्य उद्देश्य मॉडल प्रारूप का उपयोग करना एक परियोजना की शुरुआत में आपके उद्देश्यों के अनुरूप हो सकता है, लेकिन अंततः कई चीजें हैं जो आप 3D मॉडल के साथ कर सकते हैं और प्रत्येक प्रारूप के अपने लाभ और कमियां हैं, इसलिए आप वह चुन सकते हैं जो आपके लिए सबसे अच्छा काम करे ।


4

एक भी मानक नहीं है जो 3 डी मॉडल के भंडारण को परिभाषित करता है। ग्राफिक्स एपीआई केवल त्रिभुजों के बारे में परवाह करता है, जो वर्टिकल और इंडेक्स द्वारा परिभाषित किए जाते हैं जो दर्शाता है कि कौन सा वर्जन एक त्रिकोण बनाता है।

कई कंपनियों ने विभिन्न विशेषताओं और लक्ष्यों के साथ अपने स्वयं के मॉडल प्रारूप बनाए हैं। सबसे सरल में से एक है .obj (वेवफ्रंट ऑब्जेक्ट) प्रारूप। जिसमें शीर्ष स्थान, मानदंड और बनावट निर्देशांक और त्रिकोण बनाने वाले सूचकांकों की सूची शामिल है। इसमें सामग्री भी होती है, जिसमें कुछ मूल गुण होते हैं जैसे बनावट, फैलाना और स्पेक्युलर रंग।

ऑटोडेस्क द्वारा उपयोग किए जाने वाले अधिक उन्नत मॉडल प्रारूप, जैसे .fbx (FilmBox) में मॉडलिंग सॉफ़्टवेयर द्वारा आवश्यक अतिरिक्त जानकारी होती है। इनमें हड्डियों, पदानुक्रम और यहां तक ​​कि स्किनिंग आदि के लिए उपयोग किए जाने वाले अधिक शीर्ष गुण भी शामिल हो सकते हैं, इसलिए "मानक" हैं, लेकिन वे वास्तव में एकीकृत नहीं हैं क्योंकि प्रत्येक प्रोग्राम को अलग-अलग जानकारी की आवश्यकता हो सकती है। लेकिन वेवफ्रंट एक बहुत अच्छा विकल्प है, क्योंकि कई मॉडलिंग एप्लिकेशन इसे निर्यात कर सकते हैं और इसके लिए एक आयातक (लिखना) लिखना आसान है।


3

जैसा कि अन्य उत्तरों ने उल्लेख किया है, 3 डी डेटा संग्रहीत करने के लिए कई प्रतिस्पर्धी प्रारूप हैं।

हालाँकि, इस प्रश्न के पूछे जाने के बाद से एक विशिष्ट प्रारूप सामने आया है, जिसमें कई विशेषताएं हैं जो आप "मानक" से उम्मीद करेंगे: glTF प्रारूप


glTF ख्रोनोस ग्रुप (ओपेनगुल और वुलकन के पीछे संगठन) द्वारा प्रकाशित एक 3D मानक है, जिसका उद्देश्य कोलाडा में खामियों को दूर करना है।

इसके मुख्य लाभ हैं:

  • यह JSON- आधारित है, जो नेटवर्क पर पार्स करना, क्रमबद्ध करना, पढ़ना और भेजना बहुत आसान बनाता है।

  • मानक में बहुत कम अस्पष्टता या अतिरेक है (हालांकि कुछ * है)। इकाइयाँ, तन्मयता, बनावट के निर्देशांक आदि सभी मानकीकृत हैं; सब कुछ हमेशा सूचकांक आधारित होता है, जिसका अर्थ है कि कोई डेटा अतिरेक नहीं है। यह एक आयातक लिखना वास्तव में आसान बनाता है।

  • प्रलेखन बहुत साफ और संपूर्ण है।

  • डेटा का लेआउट OpenGL / WebGL वर्कफ़्लो पर आधारित है, जिसका अर्थ है कि आयातित मॉडल को थोड़ा प्लंबिंग के साथ इंजन डेटा के रूप में उपयोग किया जा सकता है।

  • मानक ओपन सोर्स है, और विनिर्देश जीथब पर होस्ट किया गया है। इसका मतलब है कि मानक हमेशा उपलब्ध होगा, मुफ्त में प्रयोग करने योग्य है, और विकास की प्रक्रिया सभी को दिखाई देती है। विपक्ष द्वारा, निजी स्रोतों द्वारा बंद-स्रोत मानकों का भविष्य तय किया जाता है, जो स्वाभाविक रूप से खतरनाक है।

  • glTF को ख्रोनोस (Adobe, Google, Microsoft, Mozilla, Unity) के माध्यम से कई उद्योग दिग्गजों का समर्थन प्राप्त है; यह ब्लेंडर द्वारा निर्यात किया जा सकता है (माया से निर्यात अभी भी आधिकारिक रूप से असमर्थित है), और अवास्तविक, एकता और गोडोट द्वारा आयात किया जाता है।

यह सभी देखें:

* मुझे पूरा यकीन है कि चर-चर स्पर्शरेखा व्यर्थ है।


2

अन्य उत्तरों में जोड़ने के लिए, वास्तव में दो प्रकार के प्रारूप हैं, मध्यवर्ती और रनटाइम। इंटरमीडिएट प्रारूप (उदाहरण: COLLADA) अधिक वर्बोज़ / धीमे होते हैं और उपकरण के बीच अंततः कस्टम रनटाइम प्रारूप में परिवर्तित होते हैं जो एक विशिष्ट एप्लिकेशन / हार्डवेयर के लिए अनुकूलित होता है। सरल अनुप्रयोग जो प्रदर्शन के बारे में अधिक परवाह नहीं करते हैं वे सीधे मध्यवर्ती प्रारूपों का उपयोग कर सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.