2012-03-25 12 views
8

Mit dem nächsten Vertex-Shader, was ist der einfachste, effizienteste und schnellste Weg, die Koordinaten umzudrehen, so dass der Fragment-Shader ein verdrehtes Bild erzeugt?Flip-Up-Vertex-Shader (GLES)

attribute vec4 a_position; 
attribute vec2 a_texcoord;             
varying vec2 v_texcoord; 

void main() 
{ 
    v_texcoord = a_texcoord.st; 
    gl_Position = a_position; 
} 
+0

Die Eckpunktpositionskoordinaten oder die Texturkoordinaten? Wäre es nicht sinnvoller, dies in die Transformation zu integrieren, die Sie für diese Positionen verwenden (vorausgesetzt, Sie beabsichtigen, eine Transformation durchzuführen). –

Antwort

13

Einfach spiegeln v_texcoord. So z.B.

v_texcoord = a_texcoord.st * vec2(1.0, -1.0); 

Oder ich denke:

v_texcoord = vec2(a_texcoord.s, 1.0 - a_texcoord.t); 

Je nachdem, was genau wollen Sie auf den Bereich von .t geschehen.

+2

Ausgezeichnet! Verwendet "vec2 (a_texcoord.s, 1.0 - a_texcoord.t)" und funktioniert perfekt. – PerracoLabs

+1

v_texcoord = vec2 (a_texcoord.s, 1.0 - a_texcoord.t); - einfache und schöne Lösung, danke – gbk