Los nombres comunes para los componentes de las coordenadas de textura son U y V. Sin embargo, debido a que la siguiente letra utilizada (para texturas 3D) es W, eso causa un conflicto con los nombres de los componentes de una posición : X, Y, Z y W .
Para evitar tales conflictos, la convención de OpenGL es que los componentes de las coordenadas de textura se denominan S, T y R. Por lo tanto, tiene llamadas de función como esta:
glTexParameter(..., GL_TEXTURE_WRAP_S, GL_REPEAT);
Donde se GL_TEXTURE_WRAP_S
refiere a envolver en el componente S de la coordenada de textura.
Desafortunadamente, OpenGL eligió S, T y R mucho antes de que aparecieran GLSL y máscaras de swizzle . R, por supuesto, entra en conflicto con R , G, B y A. Para evitar tales conflictos, en GLSL, la máscara de swizzle de coordenadas de textura usa S, T, P y Q.
En GLSL, puedes mezclar con XYZW, STPQ o RGBA. Todos significan exactamente lo mismo. Entonces position.st
es exactamente lo mismo que position.xy
. Sin embargo, no está permitido combinar máscaras swizzle de diferentes conjuntos. Entonces position.xt
no está permitido.