में ओपनजीएल वर्टेक्स डेटा में संरेखण कितना महत्वपूर्ण है ओपनजीएल ईएस प्रोग्रामिंग गाइड चर्चा करता है कि आपको गलत हस्ताक्षर किए गए वर्टेक्स डेटा से बचना चाहिए और डेटा को 4 बाइट ब्लॉक में संरेखित करने का एक उदाहरण देता है।आईओएस
हालांकि अधिकांश डेमो सामग्री और ट्यूटोरियल में मैं ऑनलाइन पाया है मैं किसी को ऐसा करने नहीं दिख रहा। नीचे दिया गया उदाहरण 71 वर्ग पर डेमो प्रोजेक्ट से है:
static const SSTexturedVertexData3D EnemyFighterVertexData[] = {
{/*v:*/{1.987003, -0.692074, -1.720503}, /*n:*/{0.946379, -0.165685, -0.277261}, /*t:*/{0.972816, 0.024320}},
और आप इसे कैसे करेंगे? एक डमी 0.0 को v और n और 2 में से टी में जोड़ें?
मेरा अनुमान है कि यदि आप प्रति ऐप में एक बार वर्टेक्स डेटा लोड कर रहे हैं तो इससे कोई फर्क नहीं पड़ता है, लेकिन यदि प्रत्येक बाध्यकारी फ्रेम पर अलग-अलग सरणी के लिए बाध्यकारी और बाध्यकारी है तो इससे कोई फर्क नहीं पड़ता। मेरी योजना है कि मेरे सभी सरणी किसी भी तरह से गठबंधन करें, लेकिन मैं उत्सुक हूं।
क्या आप वाकई उपरोक्त 4-बाइट सीमा से पहले ही गठबंधन नहीं हैं? यदि आपके द्वारा दिखाया गया कोड GLfloats का उपयोग कर रहा है, तो वे 32-बिट (4 बाइट) डेटा प्रकार हैं, इसलिए इससे कोई फर्क नहीं पड़ता कि उनमें से कितने हैं, वे हमेशा 4-बाइट सीमा से गठबंधन होते हैं। मार्गदर्शिका शॉर्ट्स और अन्य डेटा प्रकारों का जिक्र कर रही है। –
मैं सोच रहा था कि। धन्यवाद! आपको इसे एक उत्तर के रूप में रखना चाहिए ताकि मैं इसे चेकमार्क कर सकूं। – badweasel
मैं कर सकता था, लेकिन यह अधिक मौलिक सवाल का जवाब नहीं देता है कि वर्टेक्स डेटा के बाइट संरेखण प्रदर्शन के लिए कितना महत्वपूर्ण है। इसके लिए कुछ बेंचमार्कों को पूरी तरह से चित्रित करने की आवश्यकता हो सकती है। –