Bien le bonjour.

Pour changer la couleur d'un objet avec GLES il y a plusieurs solutions.
Par exemple on peut utiliser en changeant la couleur de chaque vertex à l'aide d'une variable et un "attributeur" :

Ex du shader :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
                "precision mediump float ;" +
                "varying vec4 v_Color;" +
                "void main(){" +
                "   gl_FragColor = v_Color ;" +
                "}");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
        colorBuffer.position(0);
        GLES20.glVertexAttribPointer(a_Color, 4, GLES20.GL_FLOAT, false, 0, colorBuffer);
        GLES20.glEnableVertexAttribArray(a_Color);
Ou encore faire un shader spécial :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
                "void main(){" +
                "   gl_FragColor = vec4(1.0,0.0,0.0,0.75);" +
                "}");

Mais peut on commander simplement a GLES de dessiner tout ce qui va suivre dans une couleur sans avoir a le faire avec un buffer pour chaque vertex, mais en maîtrisant tout de même la couleur ?

EX :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
                "precision mediump float ;" +
                "varying vec4 v_Color;" +
                "void main(){" +
                "   gl_FragColor = v_Color ;" +
                "}");
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
        GLES20.glsetColor(a_Color,1.0,0.0,0.0,0.75);
J'ai tenté avec des ce que j'ai trouvé mais sans résultat savez vous si cela existe ?

Merci