Ich konvertiere Png in Texturen auf Java-Seite und zeichne sie auf benutzerdefinierten Positionen auf dem Bildschirm in 2D-Oberfläche. In meinem Fall ist der Punkt 0,0 oben links im Bildschirm. Die untere rechte Ecke ist zum Beispiel 1024x768. Jetzt möchte ich etwas wie ImageView mit Scrolling-Effekt implementieren. Dies bedeutet, dass beim Scrollen einige Texturen nur teilweise sichtbar sind. Zum Beispiel werden obere Texturen (obere Elemente) den oberen Teil und untere Texturen (untere Elemente) den unteren Teil verpassen.OpenGL ES 2.0 - Wie zeichne ich nur einen Teil der Textur mit Shadern?
Ich benutze Standard Vertex- und Fragment-Shader:
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;
}
Lassen Sie sagen, mein Image etwas gescrollt wird, und ich sehe nur 70% der Höhe der Top-Artikel Texturen? Die ersten 30% sollten unsichtbar sein. Wie kann ich den Vertex- oder Fragment-Shader ändern?
Ich benutze OpenGL ES 2.0
Danke
Der zweite Weg klingt besser für meine Zwecke. Ich denke, ich weiß, wie es geht, und ich werde es an einem einfachen Beispiel versuchen. Ich glaube, dass dieses Thema für viele Leute interessant sein könnte, wenn jemand ein einfaches Beispiel hinzufügen kann, werde ich sehr glücklich sein. Danke vielmals. – user1063364