वर्तमान में, मेरे पास RenderObject
कक्षाओं का संग्रह है जिसमें एक बनावट, एक वीएओ और एक वीबीओ शामिल है। इन राज्यों में से हजारों वस्तुओं को चित्रित करने के कारण सभी राज्य स्विचिंग के कारण प्रदर्शन पेनल्टी होती है और glDrawArrays
पर छोटी संख्या में त्रिभुजों के साथ कॉल किया जाता है।क्या आपको प्रत्येक वीबीओ के लिए वीएओ की आवश्यकता है?
तो अब मैं अपना कार्यान्वयन बदलने जा रहा हूं ताकि मैं 1 एमआईबीबी वीबीओ की एक श्रृंखला तैयार कर सकूं (एक बार शुरू हो जाने के बाद, एक दूसरा 1 एमआईबीबी वीबीओ बनाएं और इसे भरना जारी रखें)। क्या मुझे प्रत्येक वीबीओ के लिए एक अलग वीएओ चाहिए? वीबीओ पहले से ही इंटरलेव्ड वर्टेक्स डेटा का उपयोग करता है, इसलिए मैं चरम, मानक, बनावट कॉर्ड इत्यादि के लिए एकाधिक वीबीओ का उपयोग करने के बारे में बात नहीं कर रहा हूं।
अच्छा बिंदु, धन्यवाद, मैं शीर्ष attrib सामान हटा दिया है। –
@ मार्क Ingram मैं इसे अन्य पाठकों के लिए प्रश्न में रखूंगा। –
मैं बहुत अधिक 100% हूं कि वीएओ वीबीओ बाइंडिंग पॉइंट (ARRAY_BUFFER_BINDING) को बाध्य नहीं करता है, अगर आप 3.3 कोर स्पेक पीडीएफ में वीएओ स्टेट टेबल पेज देखते हैं, तो यह स्पष्ट रूप से अगले पीपी पर नहीं कहता है " वीएओ राज्य "। इसके अलावा, https://twitter.com/id_aa_carmack/status/409495250646753280 https://www.opengl.org/registry/doc/glspec33.core.20100311.withchanges.pdf जांचें, पीपी 281 और 282 देखें। मुझे लगता है कि आपके द्वारा लिंक किया गया ट्यूटोरियल सिर्फ काम करता है क्योंकि यह तत्व सरणी बफर को स्रोत करता है जो कि वही एक बार फिर से उपयोग किया जाता है, या क्योंकि तत्व सरणी बफर जो VBO का उपयोग करने के लिए बनाए रखता है, सुनिश्चित नहीं करता है। – Amadiro