作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我不想使用 #include
在 glsl 中包含着色器文件的宏,我听说有一个 ARB_shading_language_include
extension支持#include
宏。有没有人可以给我一个代码片段,展示如何使用 #include
宏?
最佳答案
关于shading_language_include您需要了解的第一件事是什么不是。它不是“我 #include
来自磁盘的文件”。 OpenGL 不知道文件是什么;它没有文件系统的概念。
相反,您必须预加载您可能想要包含的所有文件。所以你有一个着色器字符串和一个从中加载字符串的文件名。本质上,您必须在 OpenGL 中构建一个虚拟文件系统。
您使用 glNamedStringARB
将字符串上传到虚拟文件系统。字符串的名称是其完整路径名。
构建虚拟文件系统后,您必须为编译的每个着色器初始化扩展。
#version MY_OPENGL_VERSION //Whatever version you're using.
#extension GL_ARB_shading_language_include : require
#extension
声明,您可以
#include
如你所见。
关于opengl - 如何在 glsl 支持中使用#include ARB_shading_language_include,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10754437/
我是一名优秀的程序员,十分优秀!