java - studio - ¿Cuál es el tercer argumento en VertexAttribute() utilizado en libgdx?
libgdx ubuntu (2)
Hay, estoy repasando el tutorial básico en la wiki de libgdx, y estoy confundido por la línea
new VertexAttribute(Usage.Position, 3, "a_position"));
¿Para qué se utiliza la cadena "a_position"?
Ver el documento para VertexAttribute
la clase Mesh funciona con OpenGL ES 1.xy 2.0. En OpenGL ES 1.x utiliza una tubería de función fija (sin sombreadores). Aquí el atributo no tiene ningún uso. En OpenGL ES 2.0 usted escribe los llamados sombreados de vértices y fragmentos. Si envía un Malla (o más bien sus vértices) a su par de sombreado de vértice / fragmento, sus sombreadores deben tener una manera de identificar atributos de vértice específicos, por ejemplo, la posición del vértice, las coordenadas de textura, los colores, etc.
Los sombreadores están escritos en un lenguaje llamado GLSL. Un sombreador de vértices podría verse así:
attribute vec4 a_Position;
attribute vec4 a_Normal;
attribute vec2 a_TexCoord;
uniform mat4 u_projView;
varying vec2 v_texCoords;
varying vec4 v_color;
void main() {
v_color = vec4(1, 0, 0, 1);
v_texCoords = a_TexCoord;
gl_Position = u_projView * a_Position;
}
Como puede ver, hay los llamados atributos que son exactamente los mismos que VertexAttributes en libgdx. El tercer parámetro es, por lo tanto, el nombre de un VertexAttribute como se usa en un shader (y, por lo tanto, ShaderProgram en libgdx, si lo usa por conveniencia en lugar de ir directamente con las funciones de GLES 2.0).
hth, Mario