2009-10-13 24 views
7

मैं जाल प्रति एक शीर्ष बफर का प्रयोग करना होगा, या मैं एक शीर्ष बफर में कई meshes स्टोर कर सकते हैं? यदि हां, तो मुझे यह करना चाहिए, और मैं इसे कैसे करूँगा?एक कशेरुक बफर में एकाधिक मेष?

उत्तर

5

आप एक शीर्ष बफर में कई meshes स्टोर कर सकते हैं। आप एक बफर में कई छोटे मेष डालकर कुछ प्रदर्शन प्राप्त कर सकते हैं। वास्तव में बड़े मेष के लिए आपको अलग बफर का उपयोग करना चाहिए। SetStreamSource आपको अपने वर्तमान जाल के लिए वर्टेक्स बफर ऑफसेट निर्दिष्ट करने देता है।

pRawDevice->SetStreamSource(0, m_VertexBuffer->GetBuffer(), m_VertexBuffer->GetOffset(), m_VertexBuffer->GetStride()); 
-2
ओपन के साथ

आप glVertexPointer() का उपयोग एक निश्चित VBO अंदर ऑफसेट से ड्राइंग शुरू करने के लिए कर सकते हैं। डी 3 डी के बारे में निश्चित नहीं है।

2

टीबीएच आम तौर पर उन्हें एक बड़े बफर में डालने का कारण ड्रॉ कॉल पर सहेजना है। एक कशेरुक बफर स्विच करने की लागत काफी कम है। यदि आप उन्हें सभी को 1 वर्टेक्स बफर में विलय कर सकते हैं और 1 ऑब्जेक्ट कॉल में 10 ऑब्जेक्ट्स प्रस्तुत कर सकते हैं तो आप एक बड़ी जीत पर हैं।

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

तो सभी वस्तुओं और 1 सूचकांक बफर वैसे भी सही (उस में 1 वस्तु परिभाषा के साथ) एक ही आप केवल 1 शिखर बफर का उपयोग किया जाएगा रहे हैं? मैट्रिसेस ले जाएँ या वस्तु ...

चेतन सभी वस्तुओं अलग और आगे बढ़ रहे हैं/एनिमेट तो मैं सिर्फ व्यक्तिगत VBS साथ रहना चाहते हैं। मुझे संदेह है कि आप उन्हें एक साथ विलय करके कोई अंतर देखेंगे।

0

खैर मेरा अनुभव यह है कि यह तब तक इतना अंतर नहीं करता है जब तक कि आपके बफर वास्तव में छोटे या वास्तव में विशाल न हों। मुझे संदेह है कि स्विचिंग बफर में किसी भी अक्षमता को अधिक छोटे बफर के साथ ड्राइवर की स्मृति को प्रबंधित करने के लिए अधिक ऑपरेटरों को दक्षता में वृद्धि से मिलान किया जाएगा।