Doku koordinatlarının bileşenleri için ortak adlar U ve V'dir. Ancak, kullanılan bir sonraki harf (3B dokular için) W olduğundan, bir konumun bileşenlerinin adlarıyla çakışmaya neden olur : X, Y, Z ve W .
Bu tür çatışmaları önlemek için, OpenGL'nin kuralı, doku koordinatlarının bileşenlerinin S, T ve R olarak adlandırılmasıdır. Böylece, şöyle işlev çağrılarınız vardır:
glTexParameter(..., GL_TEXTURE_WRAP_S, GL_REPEAT);
Burada GL_TEXTURE_WRAP_S
doku koordinatının S bileşenindeki kaydırmayı ifade eder.
Ne yazık ki, OpenGL, GLSL ve swizzle maskeleri gelmeden çok önce S, T ve R'yi seçti . R, elbette, R , G, B ve A ile çatışır. Bu tür çatışmaları önlemek için GLSL'de doku koordinat swizzle maskesi S, T, P ve Q kullanır.
GLSL'de XYZW, STPQ veya RGBA ile geçiş yapabilirsiniz. Hepsi aynı şey demek. Yani position.st
tam olarak aynı position.xy
. Ancak, farklı setlerden swizzle maskelerini birleştirmenize izin verilmiyor. Buna position.xt
izin verilmiyor.