Вам нужен еще один вход вершинного шейдера, который получает координаты UV для каждой вершины. Перенаправьте их в фрагментный шейдер, не изменяя их напрямую (используя другой вывод smooth out
).
В фрагментном шейдере вы обычно делаете что-то вроде этого:
vFragColor = texture(colorTable, textureCoordinate)
* texture(modelTexture, modelTextureCoordinate);
.. для достижения желаемого эффекта. Так как поиск текстуры 1d уже дает вам вид резкого освещения, типичного для новых сцен, добавление текстуры просто умножает ее значение цвета на вычисленную интенсивность света. Лучше всего выглядит, если ваше текстурное изображение слишком комично.