Les noms communs pour les composants des coordonnées de texture sont U et V. Cependant, parce que la prochaine lettre utilisée (pour les textures 3D) est W, cela provoque un conflit avec les noms des composants d'une position : X, Y, Z et W .
Pour éviter de tels conflits, la convention d'OpenGL est que les composants des coordonnées de texture sont nommés S, T et R. Ainsi, vous avez des appels de fonction comme ceci:
glTexParameter(..., GL_TEXTURE_WRAP_S, GL_REPEAT);
Où GL_TEXTURE_WRAP_S
fait référence à l'habillage dans le composant S de la coordonnée de texture.
Malheureusement, OpenGL a choisi S, T et R bien avant l' arrivée des masques GLSL et swizzle . R, bien sûr, entre en conflit avec R , G, B et A. Pour éviter de tels conflits, dans GLSL, le masque de balayage des coordonnées de texture utilise S, T, P et Q.
Dans GLSL, vous pouvez utiliser avec XYZW, STPQ ou RGBA. Ils signifient tous exactement la même chose. C'est position.st
exactement la même chose que position.xy
. Cependant, vous n'êtes pas autorisé à combiner des masques swizzle de différents ensembles. Ce position.xt
n'est donc pas permis.