Os nomes comuns para os componentes das coordenadas de textura são U e V. No entanto, como a próxima letra usada (para texturas 3D) é W, isso causa um conflito com os nomes dos componentes de uma posição : X, Y, Z e W .
Para evitar esses conflitos, a convenção do OpenGL é que os componentes das coordenadas de textura sejam denominados S, T e R. Assim, você tem chamadas de função como estas:
glTexParameter(..., GL_TEXTURE_WRAP_S, GL_REPEAT);
Onde GL_TEXTURE_WRAP_S
refere-se à quebra no componente S da coordenada de textura.
Infelizmente, o OpenGL escolheu S, T e R muito antes de aparecerem as máscaras GLSL e swizzle . R, é claro, entra em conflito com R , G, B e A. Para evitar tais conflitos, no GLSL, a máscara de swizzle de coordenadas de textura usa S, T, P e Q.
No GLSL, você pode misturar com XYZW, STPQ ou RGBA. Todos eles significam exatamente a mesma coisa. Então position.st
é exatamente o mesmo que position.xy
. No entanto, você não pode combinar máscaras swizzle de diferentes conjuntos. Então position.xt
não é permitido.