3D मॉडल का उपयोग करके ओपनजीएल में एनिमेशन


11

मैंने ब्लेंडर में एक मॉडल बनाया है। अब मैं अपने c ++ प्रोग्राम में उस 3D मॉडल को पढ़ना चाहता हूं। मुझे लगा कि एक मॉडल को विभिन्न फ़ाइल स्वरूपों जैसे .obj, .3ds या COLLADA में निर्यात किया जा सकता है और फिर उसे c ++ प्रोग्राम में पढ़ा जा सकता है। मैं काफी समय से ऐसा करने के लिए वेब खोज रहा हूं और कई ट्यूटोरियल पाए। लेकिन मैं उनमें से अधिकांश के साथ मुद्दों में भाग गया। उदाहरण के लिए, नेह ट्यूटोरियल में वे ग्लौक्स का उपयोग कर रहे हैं जिसे मैं अपने कार्यक्रम में उपयोग नहीं करना चाहता हूं। और शेष ट्यूटोरियल md2 का उपयोग करते हैं जो ब्लेंडर द्वारा समर्थित नहीं है।

तो क्या कोई मुझे निर्देशित कर सकता है कि 3D मॉडल के निर्यात के लिए किस फ़ाइल प्रारूप का उपयोग करना है और इसे मेरे OpenGL कार्यक्रम में कैसे लोड करना है? मैं उस मॉडल को कैसे एनिमेट कर सकता हूं? OpenGL का उपयोग करके c ++ प्रोग्राम में लोड होने के बाद क्या टोन मैपिंग जैसे अतिरिक्त प्रभाव जोड़ना संभव है? यदि हाँ तो कैसे?

PS मैं गेम डेवलपमेंट के लिए लिनक्स का उपयोग कर रहा हूं

जवाबों:


2

मैं OBJ प्रारूप के लिए जाना था। आप पहले से ही शायद एहसास हो गया, वहाँ सी ++ के लिए OBJ लोडर के सैकड़ों है वहाँ बाहर । मेरा मानना ​​है कि सबसे परिपक्व लोगों में से एक अस्सिम्प है , यह कई अलग-अलग स्वरूपों का समर्थन करता है और यह बहुत अच्छी तरह से प्रलेखित है। यहां आपके पास एक उदाहरण है जहां वे इसका उपयोग करते हैं।


lighthouse.com लिंक काम नहीं करता है
snape

यह मेरे सभी ब्राउज़रों में मेरे लिए काम करता है ... इस लिंक की कोशिश करें x90.es/1CC
Dan

2
हालांकि यह नहीं है कि एनिमेटेड जाल के लिए ओब्जेक्ट के पास समर्थन है? बस Google "ब्लेंडर ओपेंग्ल स्किनड मेश" और मुझे उम्मीद है कि आपको एक प्रारूप मिलेगा जो आपके द्वारा संपादित किया जाना चाहिए: मेरे पोस्ट को हटा नहीं सकता, इसका मतलब था कि पिछले पोस्ट का जवाब होगा जिसमें obj प्रारूप को फिर से
लिखा गया था

1
.obj एनीमेशन का समर्थन नहीं करता है, और यह उत्तर गलत है। stackoverflow.com/questions/757145/…
शॉन मिडिल्डिच

2

2.60 ब्लेंडर ने कोलाडा एनिमेशन सपोर्ट को तय किया है, यह कमोबेश पहले के संस्करणों में टूट गया था। हालाँकि, यदि आपने अपने कोड में अभी तक कोई मॉडल प्रारूप लोड नहीं किया है, तो मैं पहले .obj को लोड करना सीखना चाहूंगा। यह ASCII में है, इसलिए यह बाहरी लोडर पुस्तकालयों के बिना मानव पठनीय और पढ़ने में आसान है।


1

3ds में कोई एनीमेशन डेटा नहीं है, ताकि कोई काम न करे। कोलाडा के बारे में मुझे ज्यादा जानकारी नहीं है, लेकिन जब मैंने अपने खेल में किस प्रारूप का उपयोग करने का फैसला किया, मैंने खोजा और बहुत तुलना की और आखिरकार मैं बी 3 डी प्रारूप के साथ गया, यह कंकाल एनीमेशन का समर्थन करता है और इरलेविच से लोड होता है (यह लाइटिंग मान भी है )।

मैं 3dsMax से 'b3d पाइपलाइन' निर्यातक का उपयोग करता हूं और मैंने अपने खुद के hlsl shader को चेतन करने और जाल को चमकाने के लिए कोड किया है, यह वास्तव में अच्छी तरह से काम करता है।

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

एक और प्रारूप जो कि एकदम सीधा है। .X प्रारूप है, वहाँ निर्यात, लोड, पार्स और कंकाल स्थापित करने और इसके साथ एनिमेट करने के तरीके के टन उदाहरण होने चाहिए। यह एक माइक्रोसॉफ़्ट प्रारूप है, हालांकि शायद आप इसका उपयोग नहीं करना चाहेंगे :-)

टोन मैपिंग और ऐसा करने में हां का कोई लेना देना नहीं है, अगर आपको पता है कि आप उस तकनीक का उपयोग कैसे कर सकते हैं तो आप एनिमेटेड तकनीक से ऐसा कर सकते हैं।

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