乾草,我要通過基本教程libgdx的wiki,並通過我行在libgdx中用於VertexAttribute()的第三個參數是什麼?
new VertexAttribute(Usage.Position, 3, "a_position"));
什麼是字符串「a_position」用於很困惑?
乾草,我要通過基本教程libgdx的wiki,並通過我行在libgdx中用於VertexAttribute()的第三個參數是什麼?
new VertexAttribute(Usage.Position, 3, "a_position"));
什麼是字符串「a_position」用於很困惑?
的文檔網格類的工作用的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。
心連心, 馬里奧
所以,第三個參數可以是任何單詞。我們將其傳遞給ShaderProgram?我可以稱之爲「有趣的包裝」,這會起作用嗎? – dotty 2011-04-28 11:27:43