के साथ वीबीओ डेटा अपडेट करना मैं वर्तमान में जावा 1.6 में लिखित एक 2 डी टॉप-डाउन आरपीजी पर काम कर रहा हूं जो एलडब्ल्यूजेजीएल के साथ है। मैंने अपने गेम में वीबीओ के उपयोग को लागू किया और अब मैं उनमें से दो को बनाए रखता हूं: एक वर्टेक्स डेटा और एक बनावट कोर के लिए।glBufferSubData()
यह सब ठीक काम कर रहा है सिवाय इसके कि मेरे पास ऑब्जेक्ट्स को अपडेट करने के लिए वास्तव में तार्किक तरीका नहीं है। उदाहरण के तौर पर, यदि मैं अपनी बनावट को बदलने के लिए एक निश्चित टाइल चाहता हूं (बनावट शीट के दूसरे क्षेत्र को दिखाने के लिए वीबीओ के अंदर बनावट निर्देशांक बदलें), तो मैं केवल बनावट निर्देशांक को बदलने के लिए एक तरीका नहीं देख सकता यह एकल टाइल। अब मैं सोच सकता हूं कि बफर को हर लूप की आवश्यकता वाले सभी डेटा के साथ भरना और उन्हें प्रत्येक फ्रेम में glBufferData के साथ अपलोड करना हो सकता है। यह काम करता है लेकिन ऐसा करने का सबसे अच्छा तरीका प्रतीत नहीं होता है (या यह करता है?)।
अब, glBufferSubData कमांड है जो नई मेमोरी आवंटित नहीं करेगा बल्कि केवल उस हिस्से को बदल देगा जिसे मैं बदलने के लिए कहता हूं। बात यह है कि मुझे नहीं पता कि उस क्षेत्र का ट्रैक कैसे रखा जाए जिसे बदला जाना है (ऑफ़सेट)। एलडब्ल्यूजेजीएल एक ग्लैफरफबडाटा (लक्ष्य, ऑफ़सेट, डेटा) प्रदान करता है; आदेश, जो केवल काम करने के लिए बफर की भिखारी की जरूरत है। क्या ऑफसेट कुछ इंडेक्स की तरह है?
तो मैं पहले VBO करने के लिए इन बफ़र्स को अपलोड करने और फिर दूसरी नाव [] के दूसरे मूल्य बदलना चाहते हैं:,
FloatBuffer vertexData = BufferUtils.createFloatBuffer(amountOfVertices * vertexSize);
vertexData.put(new float[]{100, 100, 300, 100, 300, 300, 100, 300});
vertexData.put(new float[]{400, 100, 600, 100, 600, 300, 400, 300});
vertexData.flip();
मैं नया डेटा उत्पन्न होगा एक छोटा सा FloatBuffer अंदर डाल दिया और इसे glbufferSubData (GL_VERTEX_ARRAY, 10, newFloatBuffer) के साथ अपलोड करें ;? 10 इसलिए है क्योंकि मैं दसवें पुराने मूल्य से मूल्यों को बदलना चाहता हूं।
क्या यह सही है? इसे करने का कोई बेहतर तरीका है? और फिर: क्या यह ठीक है अगर मैं हर फ्रेम को पूरा डेटा दोबारा अपलोड करता हूं?
ऐसा करने के आसान तरीके हैं। या तो आप एक और बनावट के साथ एक ही ज्यामिति खींचते हैं। या आप वर्टेक्स शेडर में बनावट समन्वय संशोधन करते हैं। –