Простой вопрос:
В GLSL есть ли способ разделять функции между несколькими шейдерами, или мне нужно определить все функции в каждом шейдере, который нуждается в них?
Вы можете определить некоторые функции в заголовочном файле и включить их в свой шейдер. Он немного отличается от C / C ++ в том, что вы помещаете тела своих функций в заголовки, а не только их прототипы (поскольку у шейдеров нет концепции раздельной компиляции и компоновки), но в остальном это похоже на C / C ++. заголовки.
Если #include недоступно, вы можете использовать аргументы glShaderSource для указания общего содержимого. Пример:
источник