Je convertis png en textures sur le côté java et les dessine sur des positions personnalisées sur l'écran en surface 2D. Dans mon cas, le point 0,0 est le coin supérieur gauche de l'écran. Le coin inférieur droit est par exemple 1024x768. Maintenant, je veux mettre en œuvre quelque chose comme ImageView avec effet de défilement. Cela signifie que pendant le défilement, certaines textures ne seront visibles que partiellement. Par exemple, les textures du haut (les éléments du haut) manqueront les textures du haut et du bas (les éléments du bas).OpenGL ES 2.0 - comment dessiner seulement une partie de la texture avec les shaders?
J'utilise vertex shaders standard et fragment:
precision mediump float;
varying vec2 v_texCoord;
uniform sampler2D s_texture;
void main()
{
gl_FragColor = texture2D(s_texture, v_texCoord);
}
//------------
uniform mat4 uMVPMatrix;
attribute vec4 vPosition;
attribute vec2 a_texCoord;
varying vec2 v_texCoord;
void main()
{
gl_Position = uMVPMatrix * vPosition;
v_texCoord = a_texCoord;
}
Disons que mon ImageView est légèrement défilée et je ne vois que 70% de la hauteur des meilleures textures des objets? Les premiers 30% devraient être invisibles. Comment puis-je modifier le vertex ou le fragment shader?
J'utilise OpenGL2.0
Merci
La deuxième voie sonne mieux pour mes fins. Je pense que je sais comment le faire et je vais l'essayer sur un exemple simple. Je crois que ce thème pourrait être intéressant pour beaucoup de gens, donc si quelqu'un expérimenté peut ajouter un exemple simple, je serai très heureux. Merci beaucoup. – user1063364