मैं ओपनजीएल में शेडर्स के उदाहरणों की खोज कर रहा हूं और मैंने कुछ अलग-अलग शैलियों को देखा है। कुछ शेडर्स विशेष रूप से अंतर्निहित प्रकारों (यानी gl_Vertex) का उपयोग करते हैं ताकि डेटा कोड और शेडर से डेटा स्थानांतरित किया जा सके।ओपनजीएल ईएस 2.0 शेडर सर्वोत्तम प्रथाओं
कुछ शेडर्स gl_Position और gl_FragColor के बजाय वर्टेक्स से खंड शेडर में डेटा स्थानांतरित करने के लिए विभिन्न प्रकारों का उपयोग करते हैं।
कुछ shaders और 'बाहर' 'में' उपसर्ग का उपयोग आंकड़ा अंतरण निर्दिष्ट करने के लिए:
in vec3 vertex;
void main() {
gl_Position = projection_matrix * modelview_matrix * vec4(vertex, 1.0);
}
... जबकि दूसरों को विशेषताओं का उपयोग:
attribute vec4 vertex_attrib;
attribute vec4 tex_coord_attrib;
attribute vec4 color_attrib;
uniform mat4 mvp_matrix;
uniform mat4 texture_matrix;
varying vec4 frag_color;
varying vec2 tex_coord;
void main(void)
{
gl_Position = mvp_matrix * vertex_attrib;
vec4 transformed_tex_coord = texture_matrix * tex_coord_attrib;
tex_coord = transformed_tex_coord.st/transformed_tex_coord.q;
frag_color = color_attrib;
}
मेरा प्रश्न है, क्या है शेडर्स लिखने के लिए जीएलएस 2.0 में पसंदीदा तरीका? क्या कोई सर्वोत्तम अभ्यास मार्गदर्शिका है? क्या कोई कशेरुक & खंड का शेडर का उदाहरण प्रदान कर सकता है जो 'क्या करना है' का एक चमकदार उदाहरण है ??
धन्यवाद।
'इन' और 'आउट' मैक्रोज़ से थोड़ी मदद के साथ लागू किया जा सकता है। – user1095108