我不想使用#include宏来在glsl中包含着色器文件,我听说有一个ARB_shading_language_include 扩展支持#include宏.有没有人可以给我一个显示如何使用#include宏的代码片段?
Nic*_*las 44
您需要了解的关于shading_language_include的第一件事就是它不是.它不是"我#include是来自磁盘的文件 ".OpenGL不知道文件是什么; 它没有文件系统的概念.
相反,您必须预先加载可能要包含的所有文件.所以你有一个着色器字符串和一个从中加载字符串的文件名.实质上,您必须在OpenGL中构建虚拟文件系统.
您用于glNamedStringARB将字符串上载到虚拟文件系统.字符串的名称是其完整路径名.
一旦构建了虚拟文件系统,就必须为编译的每个着色器初始化扩展.
#version MY_OPENGL_VERSION //Whatever version you're using.
#extension GL_ARB_shading_language_include : require
Run Code Online (Sandbox Code Playgroud)
在#extension声明之后,您可以#include认为合适.
| 归档时间: |
|
| 查看次数: |
14759 次 |
| 最近记录: |