libgdxで使用されるvertexattribute()の3番目の引数は何ですか?

StackOverflow https://stackoverflow.com/questions/5814927

  •  26-10-2019
  •  | 
  •  

質問

ヘイ、私は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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top