Почему texture1d () в GLSL возвращает vec4? - PullRequest
5 голосов
/ 05 ноября 2010

Я пытаюсь использовать массив 1D в качестве таблицы поиска в моем вершинном шейдере ... так почему, когда я вызываю

texture1D(tex,gl_TexCoord[0].s);

это возвращает vec4? Я имею в виду, я знаю, что это то, что он делает, но что представляют 4 значения? Все, что я хочу, - это одно значение из текстуры, основанное на координате.

1 Ответ

3 голосов
/ 05 ноября 2010

Поскольку texture1D может / имеет значения RGBA (красный, зеленый, синий, альфа). Если вы сохраняете данные текстуры 1D в красном канале (GL_RED), вы можете получить доступ к этим данным с помощью:

texture1D(tex,gl_TexCoord[0].s).r;

...