libgdxで使用されるvertexattribute()の3番目の引数は何ですか?
質問
ヘイ、私はlibgdxのwikiの基本的なチュートリアルを調べています、そして私はその行に混乱しています
new VertexAttribute(Usage.Position, 3, "a_position"));
文字列「a_position」は何に使用されていますか?
解決
メッシュクラスは、OpenGL ES 1.xおよび2.0で動作します。 OpenGL ES 1.Xでは、固定関数パイプライン(シェーダーなし)を使用します。ここでは、属性には使用がありません。 OpenGL ES 2.0では、いわゆる頂点とフラグメントシェーダーを書きます。メッシュ(またはむしろその頂点)を頂点/フラグメントシェーダーペアに送信する場合、シェーダーには特定の頂点属性、頂点、テクスチャ座標、色などなどの特定の頂点属性を識別する方法が必要です。
シェーダーは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とまったく同じような呼ばれる属性があります。したがって、3番目のパラメーターは、シェーダーで使用されるvertexattributeの名前です(したがって、libgdxのシェーダープログラムは、ストレートグレス2.0関数を使用する代わりに便利に使用する場合)。
HTH、マリオ
他のヒント
docを参照してください vertexattribute
所属していません StackOverflow