मैंने OpenGL 2.1
में एक बनावट उदाहरण पढ़ा है। टुकड़ा शेडर इस तरह दिखता है:sampler2d स्टोर क्या करता है?
#version 120
uniform sampler2D texture;
varying vec2 texcoord;
void main(void)
{
gl_FragColor = texture2D(texture, texcoord);
}
texcoord
शिखर शेडर से पारित कर दिया है।
निम्नलिखित सी ++ प्रतिपादन कोड प्रयोग किया जाता है:
void render()
{
glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, texture_id);
glUniform1i(unf_texture, 0);
}
मैं कुछ चीजों के बारे में उलझन में हूँ। मेरे पास कुछ सवाल है:
खंड टुकड़े में, बनावट शून्य मूल्य (glUniform1i द्वारा) पारित की जाती है। क्या कीमत वास्तव में शून्य है? क्या मूल्य कुछ और है?
glActiveTexture
कॉल वास्तव में आवश्यकता है?हम gluniform1i में शून्य मूल्य क्यों पास करते हैं?
आपको इसे हमेशा 'ग्लैक्टिवटेक्चर' कहने की आदत बनाना चाहिए। इस तरह, जब आपको अचानक एक से अधिक बनावट का उपयोग करने की आवश्यकता होती है, तो आप दुनिया को तोड़ नहीं देंगे। –
स्पष्ट करने के लिए - क्या यह सही है कि प्रत्येक बनावट (1 डी, 2 डी, 3 डी) जिसे "GL_TEXTURE0" के अंतर्गत बाध्य किया जा सकता है, को समान मूल्य (0) नमूना 1 डी/2 डी/3 डी में पास होना होगा? और "GL_TEXTURE1" के तहत असाइन किए गए एक बनावट को शेडर के अंदर वर्दी में दिए गए मान 1 की आवश्यकता होगी? – Chris
@ क्रिस हाँ यह सही है। –