गो में ओपनजीएल वर्टेक्स बफर इश्यू
गो में ओपनजीएल का उपयोग करके एक त्रिकोण प्रदर्शित करने के प्रयास में, एक उपयोगकर्ता को एक समस्या का सामना करना पड़ा जहां वर्टेक्स बफ़र आकृति प्रस्तुत करने में विफल रहा। गो कोड एक ट्यूटोरियल से लिया गया था, लेकिन इसके सी समकक्ष के विपरीत, इसने कोई आउटपुट नहीं दिया।
समस्या का कारण
समस्या का मूल कारण vertexAttrib.AttribPointer() को दिए गए तर्क रखें। विशेष रूप से, उपयोगकर्ता ने सरणी बफ़र ऑफ़सेट के रूप में (void*)0 को गलत तरीके से निर्दिष्ट किया था। इसके परिणामस्वरूप एप्लिकेशन वर्टेक्स डेटा ढूंढने में विफल रहा। निम्नलिखित समायोजन:
AttribPointer तर्क
: vertexAttrib.AttribPointer() कॉल को सरणी बफर ऑफसेट के लिए nil और डेटा प्रकार के लिए gl.FLOAT का उपयोग करने के लिए अद्यतन किया गया था:
vertexAttrib.AttribPointer(
3, // size
gl.FLOAT, //type
false, // normalized?
0, // stride
nil) // array buffer offset
data := []float32{0, 1, 0, -1, -1, 0, 1, -1, 0}
[...]
gl.BufferData(gl.ARRAY_BUFFER, len(data)*4, data, gl.STATIC_DRAW)
[...]
बफ़रडेटा तक सही लंबाई पास करने का एक अधिक कुशल तरीका हो सकता है।glGetError कॉल ने कोई त्रुटि नहीं लौटाई, जो दर्शाता है कि समस्या गलत तर्क मानों से उत्पन्न हुई है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3