Quindi sto imparando un po 'di OpenGL, è molto da imparare e sono solo un principiante, ma non capisco il "Qualificatore di layout" in GLSL.OpenGL: qualificatore di layout?
Quindi qualcosa di simile:
layout (location = 0) in vec3 position;
in un vertex shader semplice come questo:
#version 330 core
layout (location = 0) in vec3 position; // The position variable has attribute position 0
out vec4 vertexColor; // Specify a color output to the fragment shader
void main()
{
gl_Position = vec4(position, 1.0); // See how we directly give a vec3 to vec4's constructor
vertexColor = vec4(0.5f, 0.0f, 0.0f, 1.0f); // Set the output variable to a dark-red color
}
Capisco la vec4 per esempio (in quanto questo è andare allo shader frammento). E il vertexColor ha senso, per esempio.
Ma forse non capisco la "posizione" e cosa significa esattamente in questo senso? Qualcuno si preoccupa di spiegare? Il wiki opengl onestamente non mi ha aiutato.
Ma forse ho frainteso quello che un vertex shader (sono ancora ovviamente un po 'insicuro del gasdotto). ma dalla mia comprensione la specificazione dei vertici è la prima cosa che correggiamo? (Vertici/Indici se necessario) e memorizzarli in un VAO.
Quindi il vertex shader interagisce con ogni singolo punto di vertice? (spero) perché è così che l'ho capito?
Quindi perché dovresti usare qualcosa MA zero? – msmith1114
Beh, se per esempio hai posizioni e normali, puoi posizionare l'attributo 0 e le normali nell'attributo 1. Non puoi inserire entrambi nell'attributo 0. – Jerem
Ah che ha senso, o qualcosa come la posizione nell'attributo 0, e i colori in 1 o qualcosa del genere. – msmith1114