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_Sfait 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.stexactement la même chose que position.xy. Cependant, vous n'êtes pas autorisé à combiner des masques swizzle de différents ensembles. Ce position.xtn'est donc pas permis.