我正在尝试使用 glslang 将 glsl 着色器代码编译为 SPIR-V 二进制文件。 glslang 项目可以在这里找到:
https://github.com/KhronosGroup/glslang
它可以通过命令行中的 glslangValidator.exe 手动运行。但我想使用 c++ 接口。
我已经按照 github 页面上的描述构建了项目,现在我正在为如何实际使用该界面而苦苦挣扎。
我宁愿实际上不在我的解决方案中包含任何项目(我正在使用 Visual Studio),而是链接使用它所需的 .lib 和标头。我只是找不到我需要链接的那些。 github页面只提到ShaderLang.h和StandAlone.cpp,还不够。
有人可以解释如何设置一个可以使用 glslang 的项目吗?我只需要将 glsl 着色器代码编译为 SPIR-V 二进制文件(带有有关着色器编译的调试信息)。我想对于已经做过或有更多经验的人来说,这将是一个非常简单的问题。
原文由 Aedoro 发布,翻译遵循 CC BY-SA 4.0 许可协议
您需要使用几个库。 LunarGLASS 是一个示例消费者: https ://github.com/LunarG/LunarGLASS。在那里,您可以看到文件:
https://github.com/LunarG/LunarGLASS/blob/master/CMakeLists.txt
里面包含图书馆的这个:
glslang 的自述文件包含一些重要信息。此外,在 glslang 中,glslangValidator 工具(基本上是 StandAlone.cpp)展示了如何将 API 用于库。您还可以在 LunarGLASS 项目中查看 Frontends/glslang 目录以实现类似用途。