次の頂点シェーダーとフラグメント シェーダーがあります。
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();