2012-03-25 19 views
8

Dado el siguiente sombreado de vértices, ¿cuál es la forma más simple, más eficiente y más rápida de voltear las coordenadas al revés, para que el sombreador de fragmentos produzca una imagen invertida?Voltear el sombreador de vértices invertido (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

¿Las coordenadas de posición del vértice o las coordenadas de la textura? Además, ¿no tendría más sentido poner esto en la transformación que utiliza para esas posiciones (suponiendo que tiene la intención de hacer alguna transformación). –

Respuesta

13

Solo voltear v_texcoord. Por ejemplo,

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

O, supongo:

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

Dependiendo de qué es exactamente lo que queremos que suceda a la gama de .t.

+2

¡Excelente! Utiliza "vec2 (a_texcoord.s, 1.0 - a_texcoord.t)" y funciona perfecto. – PerracoLabs

+1

v_texcoord = vec2 (a_texcoord.s, 1.0 - a_texcoord.t); - solución fácil y de belleza, gracias – gbk