मैं कई क्यूब्स से एक गेम बनाना चाहता हूं और इसे वेब प्लेटफ़ॉर्म का उपयोग करके मोबाइल प्लेटफॉर्म पर और वेब पर रखने की योजना बना रहा हूं। मेरी समस्या यह है कि जब मैं प्रति घन कॉल करता हूं तो मैं फ्रेम दर पर हिट करता हूं। क्या कोई तरीका है कि मैं उन्हें खींचने के लिए opengl es को एकल ड्रॉ कॉल कर सकता हूं? क्यूब्स के बीच एकमात्र अंतर स्थिति और रंग होगा।एकाधिक समान वस्तुओं को आकर्षित करने का सबसे प्रभावी तरीका?
उत्तर
मैं खुद को एक ही समस्या में भाग गया। मैंने इसी तरह के सवाल पूछा और कल खुद जवाब दिया। पर एक नज़र डालें:
Efficient way of drawing in OpenGL ES
आप अपने शिखर बफ़र्स बना सकते हैं और केवल एक बार gl.bufferData का उपयोग कर ग्राफिक्स कार्ड स्मृति करने के लिए उन्हें अपलोड करना चाहते हैं। फिर जब भी आप gl.drawElements या gl.drawArrays करते हैं तो उस बफर के संदर्भ का उपयोग करें। अगली बार जब तक आपके 3 डी दृश्य की सामग्री में बदलाव नहीं होता है, तो आप ग्राफिक्स कार्ड मेमोरी में अपलोड किए गए इस बफर का उपयोग कर सकते हैं।
यूआईटीबल व्यू के मॉडल का पालन करें कि वे कोशिकाओं को कैसे हटाते हैं। मैं एक ऑब्जेक्ट तैयार करता हूं जो आपके द्वारा खींची गई वस्तुओं का ट्रैक रखता है और उन्हें पहचानकर्ता से लिंक करता है। फिर आप उन्हें पहचानकर्ता के साथ आसानी से हटा सकते हैं। यदि आप जानते हैं कि आप एक ही ऑब्जेक्ट के कई संस्करणों को आकर्षित करने जा रहे हैं, तो उस ऑब्जेक्ट का उपयोग प्रतिपादन/आवंटन को कम करने के लिए करें।
यदि आप अपने glDrawElements() के लिए वेरटेक्स Arrays का उपयोग कर रहे हैं, तो मैं Vertex Buffer ऑब्जेक्ट्स का उपयोग करने के बजाय सुझाव देना चाहता हूं। यह क्लाइंट साइड (सिस्टम रैम में) के बजाय डेटा सर्वर पक्ष (जीआरएएम में) स्टोर करेगा। इस तरह आप gldrawElements() कॉल को बहुत कम CPU < -> GPU डेटा ट्रांसफर ओवरहेड के साथ कॉल कर सकते हैं।
वैकल्पिक रूप से, आप स्टोर सूची में क्यूब्स स्टोर कर सकते हैं। इस तरह आप घन को स्थानांतरित करने के लिए glTranlate() का उपयोग कर सकते हैं और उसके बाद इसे प्रदर्शित करने के लिए केवल प्रदर्शन सूची को कॉल कर सकते हैं। डिस्प्ले सूचियों का उपयोग करने के लिए एकमात्र चेतावनी यह है कि जो भी आप प्रदर्शन सूची में करते हैं वह अपरिवर्तनीय है; आप डिस्प्ले सूची में कॉल को पूरी तरह से पुन: संकलित किए बिना बदल नहीं सकते हैं।
ओपनजीएल ES प्रदर्शन सूचियों का समर्थन नहीं करता है। –
- 1. ओपनएल में वोक्सल्स (क्यूब्स) को आकर्षित करने का सबसे प्रभावी तरीका क्या है?
- 2. फोनेटिक खोज को लागू करने का सबसे प्रभावी तरीका
- 3. CMSampleBuffer सामग्री को संशोधित करने का सबसे प्रभावी तरीका
- 4. लौटाए गए सरणी को इंडेक्स करने का सबसे प्रभावी तरीका?
- 5. वैक्टर को सब्सट्रेट करने का सबसे प्रभावी तरीका
- 6. एनएसएससेट को सॉर्ट करने का सबसे प्रभावी तरीका क्या है?
- 7. फ़ाइल पढ़ने का सबसे प्रभावी तरीका
- 8. MySQL में यूआरएल स्टोर करने का सबसे प्रभावी तरीका?
- 9. ब्लैकबेरी डिवाइस पर डीबग करने का सबसे प्रभावी तरीका?
- 10. जीसीडी के साथ फाइल कॉपी करने का सबसे प्रभावी तरीका?
- 11. लाटेक्स में बार चार्ट आकर्षित करने का सबसे अच्छा तरीका?
- 12. PHP में भाषा फ़ाइल करने का सबसे प्रभावी तरीका?
- 13. पायथन में एक पेड़ को पार करने का सबसे प्रभावी तरीका क्या है?
- 14. "एचजी आयात" को संभालने का सबसे प्रभावी तरीका क्या है?
- 15. MySQL में निकटतम पूर्णांक को खोजने का सबसे प्रभावी तरीका?
- 16. 100 डोम तत्वों को छिपाने/दिखाने का सबसे प्रभावी तरीका?
- 17. एकाधिक टीसीपी ग्राहकों को स्वीकार करने का सबसे अच्छा तरीका?
- 18. क्या व्यवसाय नियम/तर्क को मैप करने का सबसे प्रभावी तरीका ड्रूल्स है?
- 19. ServletOutputStream को फ़ाइल लिखने का सबसे प्रभावी तरीका
- 20. अपरिवर्तनीय वस्तुओं को परिवर्तनीय वस्तुओं (रिकर्सिव) में परिवर्तित करने का सबसे अच्छा तरीका क्या है?
- 21. सी-जैसी परिभाषा तारों को पार्स करने का सबसे प्रभावी तरीका?
- 22. शुद्ध जावास्क्रिप्ट का उपयोग कर स्टाइल सेट करने का सबसे प्रभावी तरीका?
- 23. एकाधिक सबव्यूज़ व्यवस्थित करने का सबसे अच्छा तरीका क्या है?
- 24. संग्रह से वस्तुओं को हटाने का सबसे अच्छा तरीका
- 25. 22 अलग-अलग निर्माण करने के लिए सबसे प्रभावी तरीका
- 26. घटनाओं की गणना करने के लिए सबसे प्रभावी तरीका है?
- 27. कतार की निगरानी करने के लिए सबसे प्रभावी तरीका
- 28. जे में हास्केल के फ़ोल्ड 1 को कार्यान्वित करने का सबसे प्रभावी तरीका क्या है?
- 29. स्ट्रीम से डेटा पढ़ने का सबसे प्रभावी तरीका
- 30. डाटाबेस में एकाधिक ध्वज स्टोर करने का सबसे अच्छा तरीका
क्या एक दूसरे के सापेक्ष क्यूब्स की स्थिति समय के साथ बदलती जा रही है? – LarsH
वे समय के साथ संभवतः बदल देंगे क्योंकि मैं विनाशकारी वस्तुओं को पसंद करूंगा। – Xavier
यह भी देखें: http://stackoverflow.com/questions/9352355/draw-many-of-the-same-object-quickly-in-opengl – jwrush