Многоразовые/общие функции GLSL, общие константы (OpenGL ES 2.0 )?

Кратко:

Могу ли я определить функцию, которую может использовать каждый шейдер? Или я должен определить это для каждого шейдера?


Вся история:

  • Я хочу создать множество шейдеров, предназначенных для раскрашивания входных фрагментов с предопределенными градиентными рампами (примерно так-http://www.thinkboxsoftware.com/storage/krakatoa-support-images/krakatoa15_kcm_densitybyage_gradientrampmap.png).

  • Я хочу определить градиентную рампу константу для каждого шейдера(массив образцов цвета vec4, где альфа-значение содержит положение градиента, см. поз. на картинке выше)

  • И мне нужно функция , которая может возвращать образец цвета из заданной шкалы градиента для конкретной координатной позиции текстуры.

Таким образом, рампы должны быть определены ОДИН РАЗ для каждого шейдера , а функция должна быть определена сразу , чтобы каждый шейдер мог безопасно использовать ее.

У меня есть алгоритмы, вопрос касается совместного использования функций и определения констант в GLSL.

Возможно ли это? Или мне нужно скопировать функцию в каждый шейдер? Есть ли хотя бы какой-то вариант предварительной компиляции?

10
задан vaxquis 9 February 2015 в 19:40
поделиться