मुझे लगता है कि OpenGL संस्करण 3 और क्लाइंट-साइड रेंडरिंग के उपयोग को समाप्त करता है। तत्काल मोड को समाप्त कर दिया गया है, और शीर्ष सरणियों को पदावनत किया जा रहा है। इसके बजाय, अगर मैं सही तरीके से समझूं, तो वीबीओ लंबों को प्रस्तुत करने का मुख्य तरीका है।
जब मैं सब कुछ प्रदान करने का एक समान तरीका होने के पीछे के तर्क को देखता हूं, तो क्या यह मामला है कि वीबीओ को वर्टेक्स किरणों पर कोई बड़ी गिरावट नहीं है? मुझे लगा कि वीबीओ को आमतौर पर 1 एमबी डेटा वाले बड़े बफर होने चाहिए थे। क्या होगा अगर मेरे पास एक दृश्य है जिसमें बहुत छोटी ज्यामिति है? मेरे पास बड़ी संख्या में नोड्स के साथ एक दृश्य ग्राफ है, जिनमें से प्रत्येक को अपने स्वयं के परिवर्तन की आवश्यकता है, आदि। प्रत्येक नोड को अलग से हटाने में भी सक्षम होना चाहिए, अलग से जोड़ा जाएगा, आदि मैं पहले वर्टेक्स सरणियों का उपयोग कर रहा था। तो मेरा पहला सवाल यह है कि अगर मैं वीबीओ पर जाता हूं, तो अब मेरे दृश्य ग्राफ ऑब्जेक्ट्स के लिए अधिक ओवरहेड होगा क्योंकि प्रत्येक वस्तु के लिए एक वीबीओ आवंटित करने की आवश्यकता है।
एक और चिंता का विषय यह है कि मैं जिस ज्यामिति का प्रतिपादन कर रहा हूं वह अत्यधिक गतिशील हो सकता है। सबसे खराब स्थिति में, ऐसे समय हो सकते हैं जब सभी ज्यामिति को हर फ्रेम में कुछ समय के लिए नाराज होना पड़ता है। क्या VBO का इस उपयोग के मामले में वर्टेक्स ऐरे की तुलना में खराब प्रदर्शन होगा, या VBOs कम से कम वर्टेक्स एरे के रूप में ज्यादा काम करते हैं, लेकिन अब और नहीं?
इसलिए, अधिक संक्षिप्त प्रारूप में, मेरे प्रश्न हैं:
1) क्या VBO को आवंटित / डील करने के लिए पर्याप्त ओवरहेड है (मेरा मतलब है एक बफर स्थापित करने का कार्य)?
2) अगर मैं हर फ्रेम में सीपीयू से डेटा अपडेट कर रहा हूं, तो क्या यह काफी खराब हो सकता है अगर मैंने वर्टेक्स एरेज़ का इस्तेमाल किया हो?
और अंत में, मैं जानना चाहूंगा:
3) यदि उपरोक्त में से किसी भी प्रश्न का उत्तर "हाँ" है, तो रेंडरिंग के अन्य तरीकों को क्यों दर्शाया गया है जो कि एचबीओ पर लाभ हो सकता है? क्या कुछ ऐसा है जो मैं यहाँ याद कर रहा हूँ, जैसे कि तकनीक मैं इन संभावित आवंटन लागतों में से कुछ को कम करने के लिए उपयोग करने वाला हूं, आदि?
4) क्या इन सवालों में से किसी का जवाब काफी हद तक इस बात पर निर्भर करता है कि मैं OpenGL संस्करण का उपयोग कर रहा हूं? यदि मैं अपने कोड को OpenGL 3 या 4 को अग्रेषित करता हूं तो VBOs का उपयोग करके एक तरह से आगे-संगत है, जो प्रदर्शन योग्य है, क्या वही तकनीक OpenGL 2 के साथ अच्छा प्रदर्शन करने की संभावना होगी, या क्या यह संभव है कि कुछ तकनीकें OpenGL 3 के साथ अधिक तेज़ हैं + और दूसरों के साथ OpenGL 2?
मैंने स्टैक ओवरफ्लो पर यह सवाल पूछा था, लेकिन मैं यहां फिर से पोस्ट कर रहा हूं क्योंकि मुझे एहसास हुआ कि यह साइट मेरे प्रश्न के लिए अधिक उपयुक्त हो सकती है।