2011-04-28 37 views

回答

3

的文档网格类的工作用的OpenGL ES 1.x和2.0。在OpenGL ES 1.x中,您使用固定功能管线(无着色器)。这里的属性没有任何用处。在OpenGL ES 2.0中,您可以编写所谓的顶点和片段着色器。如果您发送Mesh(或顶点)到您的顶点/片段着色器对,您的着色器必须有一种方法来标识特定的顶点属性,比如说顶点位置,纹理坐标,颜色等等。

着色器使用GLSL语言编写。顶点着色器看起来是这样的:

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; 
} 

正如你可以看到有所谓的属性,这是完全一样的libgdx VertexAttributes。因此,第三个参数是在着色器中使用的VertexAttribute的名称(因此,如果您为了方便而使用该参数,而不是直接使用GLES 2.0函数),则使用该参数中的ShaderProgram。

心连心, 马里奥

+0

所以,第三个参数可以是任何单词。我们将其传递给ShaderProgram?我可以称之为“有趣的包装”,这会起作用吗? – dotty 2011-04-28 11:27:43

0
+0

它说:“对于在ShaderProgram使用的属性别名”,意思? – dotty 2011-04-28 09:03:57

+0

你说得对。对不起....删除它。 – rajath 2011-04-28 10:27:49

相关问题