I nomi comuni per i componenti delle coordinate delle trame sono U e V. Tuttavia, poiché la lettera successiva utilizzata (per le trame 3D) è W, provoca un conflitto con i nomi dei componenti di una posizione : X, Y, Z e W .
Per evitare tali conflitti, la convenzione di OpenGL è che i componenti delle coordinate delle trame sono chiamati S, T e R. Quindi, hai chiamate di funzione come questa:
glTexParameter(..., GL_TEXTURE_WRAP_S, GL_REPEAT);
Dove si GL_TEXTURE_WRAP_S
riferisce al wrapping nel componente S della coordinata texture.
Sfortunatamente, OpenGL ha scelto S, T e R molto prima che arrivassero le maschere GLSL e swizzle . R, ovviamente, è in conflitto con R , G, B e A. Per evitare tali conflitti, in GLSL, la maschera di swizzle delle coordinate della trama utilizza S, T, P e Q.
In GLSL, puoi scorrere con XYZW, STPQ o RGBA. Significano tutti esattamente la stessa cosa. Quindi position.st
è esattamente lo stesso di position.xy
. Tuttavia, non ti è permesso combinare maschere swizzle di diversi set. Quindi position.xt
non è permesso.