2013-08-22 10 views
11

मैं ओपनजीएल में एक मॉडल (उदाहरण के लिए एक मानव, चलना) एनिमेट करना चाहता हूं। मैं जानता हूँ कि (मुश्किल गणित के साथ) कंकाल-एनीमेशन, लेकिन क्या इस बारे में की तरह सामान है ....ओपनजीएल में 3 डी मॉडल (जाल) को एनिमेट कैसे करें?

  1. ब्लेंडर
  2. में
  3. ब्लेंडर
  4. में
  5. अब है कि मॉडल के लिए एक कंकाल बनाएँ मॉडल बनाएं कि मॉडल और कंकाल
  6. साथ ब्लेंडर में एक पैदल एनीमेशन कुछ है कि एनीमेशन की "मुख्य-फ़्रेम" ले लो और हर "कीफ़्रेम" निर्यात एक मॉडल (उदाहरण के लिए obj फ़ाइल के रूप में) के रूप में
  7. ओपन के लिए एक oBJ फ़ाइल लोडर करें (vertex, बनावट, सामान्य और चेहरे डेटा प्राप्त करने के लिए)
  8. 0 ओपन में है कि एनिमेटेड मॉडल आकर्षित करने के लिए
  9. उपयोग एक VBO (और कुछ मुश्किल विचारों कैसे वर्तमान "कीफ़्रेम" VBO में/मॉडल ... शायद के साथ glMapBufferRange

ठीक है कुछ बदलने के लिए मिलता है, मैं इस विचार को पता है केवल एक छोटी सी लिपि है, लेकिन क्या यह आगे की तलाश में लायक है? वीबीओ में "कीफ्रेम"/मॉडल बदलने के लिए एक अच्छी अवधारणा क्या है?

मुझे स्मृति समस्या पता है, लेकिन छोटे मॉडल (और बहुत अधिक एनिमेशन नहीं) के साथ, मुझे लगता है।

उत्तर

8

हां, जिस विधि का आप उल्लेख कर रहे हैं वह शुरुआती 3 डी वीडियो गेम (भूकंप, आदि) में बहुत लोकप्रिय था।

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

इसके लिए केवल एक एकल (स्ट्रीमिंग, या गतिशील) वीबीओ की आवश्यकता होगी। प्रत्येक फ्रेम आपको पिछले और अगले कीफ्रेम मिलेगा, कोष्ठकों को अलग करेगा, और परिणाम को VBO में अपलोड करें।

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

यहाँ पढ़ें:

+3

ईमानदारी से कहूं तो एक शीर्ष स्तर पर इस फ़्रेम tweening को लागू शायद का एक बहुत है लागू करने से अधिक प्रयास एक कंकाल एनीमेशन प्रणाली का उल्लेख। कंकाल एनीमेशन "पुराने" दिनों में नहीं किया गया था, क्योंकि सीपीयू में उन सभी अतिरिक्त चरम परिवर्तनों को करने के लिए अश्वशक्ति की कमी थी। लेकिन आज के जीपीयू क्रंच करते हैं कि नाश्ते के लिए अतिरिक्त मैट्रिक्स और इंटरपोलेशन और जीएलएसएल में भी बहुत कम कोड है। – datenwolf

+0

@ डेटनवॉल्फ मैं आपके साथ प्रदर्शन सामग्री पर सहमत हूं, लेकिन मैं कंकाल एनीमेशन को लागू करने में आसानी से असहमत हूं। Vertex tweening 'i verts [i] = lerp (t, पिछला [i], अगला [i])} है 'संबंधों और लंबाई के साथ quaternions के पदानुक्रम slerping की तुलना में, (वह हिस्सा बुरा नहीं है) लेकिन फिर आपको हड्डी के वजन के साथ शिखर जोड़ना होगा। इसका प्रबंधन करने के लिए यह बहुत अधिक डेटा है।तेजी से उत्तर के लिए –

+1

thx! – user2602528

संबंधित मुद्दे