Ответ 1
Первое, что вам нужно понять о shading_language_include, - это то, чего нет. Это не "I #include
файл с диска". OpenGL не знает, какие файлы; он не имеет понятия файловой системы.
Вместо этого вы должны предварительно загрузить все файлы, которые вы хотите включить. Итак, у вас есть строка шейдера и имя файла, из которого вы загрузили строку. По существу, вы должны создать виртуальную файловую систему в OpenGL.
Вы используете glNamedStringARB
для загрузки строки в виртуальную файловую систему. Имя строки - полное имя пути.
После того, как вы создали свою виртуальную файловую систему, вы должны, для каждого скомпилированного шейдера, инициализировать расширение.
#version MY_OPENGL_VERSION //Whatever version you're using.
#extension GL_ARB_shading_language_include : require
После инструкции #extension
вы можете #include
по своему усмотрению.