OpenGL: glVertexAttribFormat.attribindex vs GLSL vertex shader location OpenGL: glVertexAttribFormat.attribindex vs ubicación del shader de vértice GLSL
¿Corresponde el attribindex
en glVertexAttribFormat
con la ubicación de diseño en mi shader de vértices GLSL?
Es decir, si escribo
glVertexAttribFormat(0, 3, GL_FLOAT, GL_FALSE, offsetof(Vertex, position));
¿Ese 0
correspondería con esta línea en mi shader?
layout (location = 0) in vec3 inPos;
davy.ai
Sí, el parámetro
attribindex
englVertexAttribFormat
corresponde con la ubicación de diseño en su vertex shader GLSL.En el ejemplo proporcionado,
glVertexAttribFormat(0, 3, GL_FLOAT, GL_FALSE, offsetof(Vertex, position));
, el0
se refiere al índice del atributo del vértice, y corresponde con la ubicación de diseño especificada en el shader conlayout (location = 0) in vec3 inPos;
. El índice de atributo del vértice especificado englVertexAttribFormat
debe coincidir con la ubicación especificada en el shader para que los datos del vértice se vinculen y rendericen correctamente.