Wspólne nazwy komponentów współrzędnych tekstury to U i V. Jednak ponieważ następna litera (dla tekstur 3D) to W, powoduje konflikt z nazwami komponentów pozycji : X, Y, Z i biała .
Aby uniknąć takich konfliktów, konwencja OpenGL mówi, że składniki współrzędnych tekstury są nazywane S, T i R. Zatem masz wywołania funkcji takie jak to:
glTexParameter(..., GL_TEXTURE_WRAP_S, GL_REPEAT);
Gdzie GL_TEXTURE_WRAP_S
odnosi się do zawijania w składniku S współrzędnej tekstury.
Niestety OpenGL wybrał S, T i R na długo przed pojawieniem się GLSL i masek swizzle . R oczywiście powoduje konflikty z R , G, B i A. Aby uniknąć takich konfliktów, w GLSL maska zamiany współrzędnych tekstury używa S, T, P i Q.
W GLSL możesz zamienić na XYZW, STPQ lub RGBA. Wszystkie oznaczają dokładnie to samo. Więc position.st
jest dokładnie taki sam jak position.xy
. Nie można jednak łączyć masek swizzle z różnych zestawów. Więc position.xt
nie jest dozwolone.