Загальні назви компонентів координат текстури - це U та V. Однак, оскільки наступна літера (для 3D-текстур) використовується W, що викликає конфлікт із іменами компонентів позиції : X, Y, Z та W .
Щоб уникнути подібних конфліктів, умовою OpenGL є те, що компоненти координат текстури мають ім'я S, T і R. Таким чином, у вас є такі виклики функцій, як цей:
glTexParameter(..., GL_TEXTURE_WRAP_S, GL_REPEAT);
Де GL_TEXTURE_WRAP_S
йдеться про загортання в S компонента текстурної координати.
На жаль, OpenGL вибрав S, T і R задовго до того, як з'явилися GLSL і маски свистуля . R, звичайно, конфліктує з R , G, B і A. Щоб уникнути подібних конфліктів, у GLSL маска перемикання текстури координат текстури використовує S, T, P і Q.
У програмі GLSL ви можете ширити за допомогою XYZW, STPQ або RGBA. Всі вони означають абсолютно те саме. Так що position.st
точно так само, як position.xy
. Однак вам не дозволяється поєднувати маски для викрутки з різних наборів. Так position.xt
не дозволено.