0

次の頂点シェーダーとフラグメント シェーダーがあります。

String vertexShader = "attribute vec4 a_position;    \n"
    + "attribute vec4 a_color;\n" 
    + "attribute vec2 a_texCoords;\n"
    + "uniform mat4 u_worldView;\n" 
    + "varying vec4 v_color;"
    + "varying vec2 v_texCoords;"
    + "void main()                  \n"
    + "{                            \n"
    + "   v_color = vec4(1, 1, 1, 1); \n"
    + "   v_texCoords = a_texCoords; \n"
    + "   gl_Position =  u_worldView * a_position;  \n"
    + "}                            \n";
String fragmentShader = "#ifdef GL_ES\n"
    + "precision mediump float;\n"
    + "#endif\n"
    + "varying vec4 v_color;\n"
    + "varying vec2 v_texCoords;\n"
    + "uniform sampler2D u_texture;\n"
    + "void main()                                  \n"
    + "{                                            \n"      
     + "  gl_FragColor = texture2D(u_texture, v_texCoords);\n"
    + "}";

a_position属性を設定するa_colorにはどうすればよいa_texCoordsですか? 3D 球体の場合は? ユニフォームを設定するには、次を使用します。

texture.bind();
shader.begin();
shader.setUniformMatrix("u_worldView", matrix);
shader.setUniformi("u_texture", 0);
//HOW TO?
//shader.setAttributef("a_texture", value1, value2, value3, value4)
mesh.render(shader, GL20.GL_TRIANGLE_STRIP);
shader.end();
4

0 に答える 0