स्थिर और एनिमेटेड 3 डी मॉडल के लिए फ़ाइल प्रारूप


22

मैं वर्तमान में OpenGL के साथ C ++ में 3D गेम लिख रहा हूं और मैं उस हिस्से में आ रहा हूं जहां 3D मॉडल लोड करना है। इसलिए मैं लोकप्रिय फ़ाइल स्वरूपों और तकनीकों की तलाश कर रहा हूं।

  • स्थिर जाल प्रदर्शित करें और
  • एनिमेटेड जाल प्रस्तुत करना।

मैंने पहले से ही काफी बड़ी संख्या में संभावित प्रारूप और तकनीकें ढूंढ ली हैं, जैसे कीफ्रेम एनिमेशन, कंकाल एनीमेशन, एमडी 2 तक एमडी 5, 3 डीएस, एक्स, कोलाडा आदि पीपी।

सादगी के लिए मैं एक प्रारूप (और तकनीक) का उपयोग करना चाहता हूं जो दोनों को स्थिर और एनिमेटेड जाल की अनुमति देता है। तो मेरा प्रश्न यह है कि क्या एक प्रारूप उस कार्य के लिए उपयुक्त है और आप किसको सुझाव देंगे। और थोड़ा स्पष्ट करने के लिए: मुझे सुपर-चिकनी एनिमेशन या ब्रैंडन्यू सुविधाओं की आवश्यकता नहीं है।

सिडेनोट: क्योंकि मैं एक ब्लेंडर प्रशंसक हूं (लेकिन विशेषज्ञ नहीं; ;-)) यह उपयोगी होगा यदि इसे उस के साथ इस्तेमाल किया जा सकता है - लेकिन निश्चित रूप से यह शो स्टॉपर नहीं होना चाहिए, यहां।

जवाबों:


16

मुझे कोलदा का उपयोग करने का प्रस्ताव दें ।

यह डीसीसी उपकरणों द्वारा व्यापक रूप से समर्थित है और अच्छी तरह से मानकीकृत है। यह कंकाल के एनिमेशन और .. का समर्थन करता है, यह लगभग सब कुछ करता है, जिसमें शेड और भौतिकी भी शामिल हैं - जो आपके लिए प्रासंगिक नहीं होंगे।

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

ब्लेंडर में एक काम करने वाला कोलाडा निर्यातक है, लेकिन हमेशा की तरह, ब्लेंडर से सामान निर्यात करना कष्टप्रद हो सकता है। आपको वैकल्पिक निर्यातकों या फ़ाइल स्वरूपों को आज़माने की आवश्यकता हो सकती है या स्क्रिप्ट्स को मैन्युअल रूप से हैक करना चाहिए जिससे आपको समस्याओं का अनुभव हो।

कोलाडा को लोड करने के लिए, FCollada या ColladaDOM जैसे पुस्तकालयों का उपयोग करें (इसे अपने दम पर पार्स करने की कोशिश न करें, कोलाडा वास्तव में वसा XML राक्षस है ...)। इसमें ओपन एसेट इंपोर्ट लाइब्रेरी भी है , जो कोलाडा (और आपके द्वारा उल्लेखित अन्य सभी स्वरूपों) सहित ~ 25 फ़ाइल स्वरूपों को लोड करती है । यह एक उत्कृष्ट विकल्प होगा क्योंकि यह विशेष रूप से गेम डेवलपर्स की ओर लक्षित करता है और वास्तविक समय रेंडरिंग के लिए उपयुक्त प्रारूप में अपना आउटपुट प्रदान करता है। लेकिन ईमानदार होने के लिए: मैं इसके सह-लेखकों में से एक हूं, इसलिए मैं शायद थोड़ा पक्षपाती हूं ।

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


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

2
अच्छी सलाह, विशेष रूप से AssImp के संदर्भ में। हालांकि, मैंने कोलाडा का सुझाव नहीं दिया है, क्योंकि कोई भी लगातार और सही तरीके से सभी का समर्थन नहीं करता है, और यह वास्तविक सामग्री उद्देश्यों के लिए बड़ा है। मैं आपको MD5 जैसी किसी चीज़ का उपयोग करने का सुझाव दूंगा, जो आपको कंकाल मिलता है और यह बहुत व्यापक रूप से सही तरीके से लागू होता है (मुझे लगता है)। मैं MD2 को भी इतनी आसानी से खारिज नहीं करूंगा; इसके लिए बहुत सारे नमूना मॉडल हैं, और आप इसे सस्ते में सस्ते में एनिमेट कर सकते हैं (हालांकि यह ragdolls के लिए बेकार है या आपके पास क्या है)।
क्रिस ऐस

मैं बस विभिन्न फ़ाइल स्वरूपों के साथ खेलूंगा। AssImp के लिए धन्यवाद, यह करना आसान होगा। एमडी 2 वास्तव में मेरा पहला विचार था, हालांकि यह बनाने के लिए काफी महंगा है, मुझे लगता है, बजाय उचित हड्डियों के निर्यात के। मेरे मामले में रागडोल की जरूरत नहीं है, मुझे सिर्फ एनिमेटेड मॉडल चाहिए, कोई भौतिकी शामिल नहीं है।
stschindler

वहाँ वास्तव में बहुत खराब Collada निर्यातकों वहाँ से बाहर हैं, लेकिन कम से कम प्रारूप अच्छी तरह से प्रलेखित है तो आप हमेशा जानते हैं कि किसको दोष देना है :-)। MD5 एक अच्छा उम्मीदवार है, भी, लेकिन मुझे नहीं पता कि ब्लेंडर निर्यातक कितने अच्छे हैं। MD2 में एक बहुत ही सीमित शीर्ष प्रतिनिधित्व है और आकार और सटीकता की सीमा से ग्रस्त है। मैं वास्तव में इसका इस्तेमाल नहीं करूंगा, ऐसा करने का कोई कारण नहीं है।
अलेक्जेंडर गेसलर

wazim.com/Collada_Tutorial_1.htm कोलाडा लोड करने के लिए एक बहुत अच्छा इन-डेप्थ ट्यूटोरियल है, लेकिन मैं इसके बजाय लाइब्रेरी का उपयोग करने की सलाह दूंगा
एक्सिल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.