में विभिन्न वर्टेक्स विशेषताओं को संग्रहीत करना क्या विभिन्न वर्टेक्स बफर में विभिन्न वर्टेक्स विशेषताओं को स्टोर करना संभव है?विभिन्न VTE के
सभी उदाहरण मैंने देखा है अब तक इस
float data[] =
{
//position
v1x, v1y, v1z,
v2x, v2y, v2z,
...
vnx, vny, vnz,
//color
c1r, c1g, c1b,
c2r, c2g, c2b,
...
cnr, cng, cnb,
};
GLuint buffname;
glGenBuffers(1, &buffname);
glBindBuffer(GL_ARRAY_BUFFER, buffname);
glBufferData(GL_ARRAY_BUFFER, sizeof(data), data, GL_STATIC_DRAW);
और ड्राइंग की तरह कुछ कुछ इस तरह से किया जाता है कार्य करें:
glBindBuffer(GL_ARRAY_BUFFER, buffname);
glEnableVertexAttrib(position_location);
glEnableVertexAttrib(color_location);
glVertexAttribPointer(position_location, 3, GL_FLOAT, GL_FALSE, 0, 0);
glVertexAttribPointer(color_location, 3, GL_FLOAT, GL_FALSE, 0, (void*)(3*n));
glDrawArrays(GL_TRIANGLES, 0, n/3);
glDisableVertexAttrib(position_location);
glDisableVertexAttrib(color_location);
glBindBuffer(GL_ARRAY_BUFFER, 0);
है नहीं यह संभव स्थिति डाटा स्टोर करने और विभिन्न वीबीओ में रंग डेटा? समस्या यह है कि मुझे समझ में नहीं आता कि यह कैसे काम करेगा क्योंकि आप एक बार में दो बफर बांध नहीं सकते हैं, क्या आप?
यदि कोई सरल लेकिन अक्षम समाधान है, तो मैं इसे अधिक जटिल लेकिन कुशल समाधान पर पसंद करूंगा क्योंकि मैं प्राथमिक शिक्षा स्थिति में हूं और मैं चीजों को बहुत जटिल नहीं करना चाहता हूं।
इसके अलावा, यदि मैं जो पूछ रहा हूं वह संभव है, तो क्या यह एक अच्छा विचार है या नहीं?
स्पष्ट करने के लिए: मैं समझता हूँ कि मैं कैसे अलग VBO के दशक में अलग-अलग विशेषताओं की दुकान सकता है। मुझे समझ में नहीं आता कि मैं उन्हें बाद में कैसे आकर्षित करूंगा।
बहुत बहुत धन्यवाद! मै समझता हुँ!बहुत सी चीज अचानक स्पष्ट हो गई :))) मेरे दूसरे प्रश्न के बारे में क्या? क्या इसे आम तौर पर एक अच्छा विचार माना जाता है या नहीं? –
@ आर्मेन: मेरा संपादन देखें। –
अब मैं इसे और अधिक स्पष्ट देखता हूं। बहुत बहुत धन्यवाद। तो यह सरल मामलों में हमें निकोल द्वारा वर्णित पहले दृष्टिकोण का उपयोग करना चाहिए, और यदि आवश्यक है तो हम विभिन्न वीबीओ का उपयोग करें। बहुत अधिक स्पष्ट धन्यवाद! –