How to Using the #include in glsl support ARB_shading_language_include

前端 未结 2 1949
情深已故
情深已故 2020-12-05 00:57

I wan\'t to use the #include macro to include shader files in glsl, and I heard there is a ARB_shading_language_include extension support the

相关标签:
2条回答
  • 2020-12-05 01:24

    The first thing you need to understand about shading_language_include is what it isn't. It is not "I #include a file from the disk." OpenGL doesn't know what files are; it has no concept of the file system.

    Instead, you must pre-load all of the files you might want to include. So you have a shader string and a filename that you loaded the string from. Essentially, you must build a virtual filesystem within OpenGL.

    You use glNamedStringARB to upload a string to the virtual filesystem. The name of the string is its full pathname.

    Once you've built your virtual filesystem, you must then, for each shader you compile, initialize the extension.

    #version MY_OPENGL_VERSION //Whatever version you're using.
    #extension GL_ARB_shading_language_include : require
    

    After the #extension statement, you may #include as you see fit.

    0 讨论(0)
  • 2020-12-05 01:44

    I would like to answer 0xbadf00d's question, but lack reputation.

    From ARB/shading_language_include.txt: "<type> must be SHADER_INCLUDE_ARB"

    0 讨论(0)
提交回复
热议问题