2012-03-25 16 views
8

Jaki jest najprostszy, najskuteczniejszy i najszybszy sposób odwrócenia współrzędnych odwróconych do góry nogami, tak aby cieniowanie fragmentów tworzyło obraz do góry nogami?Odwróć w górę 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

Współrzędne pozycji wierzchołków lub współrzędne tekstury? Ponadto, czy nie byłoby bardziej sensowne umieszczenie tego w transformacji, której używasz na tych pozycjach (zakładając, że zamierzasz dokonać jakiejś transformacji). –

Odpowiedz

13

Po prostu przerzuć v_texcoord. Np.

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

Albo, myślę:

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

W zależności od tego, co dokładnie chcesz się zdarzyć zakresie .t.

+2

Doskonale! Używa "vec2 (a_texcoord.s, 1.0 - a_texcoord.t)" i działa idealnie. – PerracoLabs

+1

v_texcoord = vec2 (a_texcoord.s, 1.0 - a_texcoord.t); - proste i urocze rozwiązanie, dzięki – gbk