2010-02-06 11 views
14

मैंने यह Google आईओ सत्र देखा: http://code.google.com/intl/iw/events/io/2009/sessions/WritingRealTimeGamesAndroid.html
वह कहता है कि draw_texture फ़ंक्शन सबसे तेज़ है और VBO दूसरा तेज़ है।
लेकिन मुझे समझ में नहीं आता कि इसका उपयोग कैसे करें (draw_texture विधि या VBO रास्ता)।OpenGL ES के साथ बनावट बनाने का सबसे आसान तरीका क्या है?

कोई सुझाव?

+1

राज्य क्या आप के बाद कर रहे हैं, तुम क्या करने की कोशिश की ... draw_texture काफी अच्छी तरह से विनिर्देश से समझाया गया है, VBOs उदाहरण के बहुत सारे बाहर है। draw_texture और VBO हालांकि एक ही चीज़ के लिए नहीं हैं। बनावट बनावट सिर्फ एक बनावट blits। वीबीओ स्टोर वर्टेक्स डेटा, आमतौर पर त्रिभुजों को आकर्षित करने के लिए प्रयोग किया जाता है। आप एक पिक्सेल सटीक बनावट खींचने के लिए स्क्रीन गठबंधन ट्रैक्टर खींचने के लिए वीबीओ का उपयोग कर सकते हैं, लेकिन ड्रा_टेक्चर, यदि उपलब्ध हो तो बेहतर काम करता है ... तो, आप ** ** क्या आकर्षित करना चाहते हैं? – Bahbar

+0

आइए कहें कि मैं एक टेक्सट्रेर बनाना चाहता हूं जिसे मैं आकार बदल सकता हूं (चौड़ाई और ऊंचाई) और शायद – Adir

+1

घुमाएं draw_texture रोटेशन जैसे बनावट परिवर्तनों की अनुमति नहीं देता है। इसके लिए आपको वीबीओ का उपयोग करना होगा। –

उत्तर

20

स्प्राइट विधि परीक्षण वीडियो में उल्लेख किया है के लिए स्रोत कोड यहाँ उपलब्ध है:
http://code.google.com/p/apps-for-android/source/browse/SpriteMethodTest/src/com/android/spritemethodtest/Grid.java#237

यहाँ एक उदाहरण है:
http://code.google.com/p/apps-for-android/source/browse/#svn/trunk/SpriteMethodTest

यहाँ एक उदाहरण से यह है कि जहां एक VBO इस्तेमाल किया जाता है उस से जहां ड्रॉ बनावट एक्सटेंशन का उपयोग किया जाता है:
http://code.google.com/p/apps-for-android/source/browse/SpriteMethodTest/src/com/android/spritemethodtest/GLSprite.java

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

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

+2

लिंक अब टूटा हुआ प्रतीत होता है, लेकिन प्रोजेक्ट अभी भी वहां है और फ़ाइलों को svn 'ब्राउज़' के माध्यम से नेविगेट किया जा सकता है। – mlvljr

+0

@mlvjr मैंने पोस्ट संपादित किया और लिंक तय किए: बस/ट्रंक/भाग को हटाने के लिए आवश्यक है। – DavidDraughn

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