我正在尝试使用 glslang 将 glsl 着色器代码编译为 SPIR-V 二进制文件。 glslang 项目可以在这里找到:
https://github.com/KhronosGroup/glslang
它在命令行中手动通过 glslangValidator.exe 运行良好。 但我想使用 C++ 接口(interface)。
我已经按照 github 页面上的描述构建了项目,现在我正在为如何实际使用界面而苦恼。
我宁愿不在我的解决方案中实际包含任何项目(我使用的是 Visual Studio),而是链接使用它所需的 .lib 和 header 。 我就是找不到我需要链接的那些。 github页面只提到了ShaderLang.h和StandAlone.cpp,这还不够。
有人可以解释如何设置一个可以使用 glslang 的项目吗?我只需要它来将 glsl 着色器代码编译为 SPIR-V 二进制文件(带有有关着色器编译的调试信息)。 我想对于已经做过或有更多经验的人来说,这将是一个非常简单的问题。
最佳答案
您需要使用几个库。要查看的示例消费者是 LunarGLASS:https://github.com/LunarG/LunarGLASS .在那里,您可以看到文件:
https://github.com/LunarG/LunarGLASS/blob/master/CMakeLists.txt
哪个里面包含这个库:
set(GLSLANGLIBS
glslang
HLSL
OSDependent
OGLCompiler
SPIRV)
glslang 的自述文件包含一些重要信息。此外,在 glslang 中,glslangValidator 工具(基本上是 StandAlone.cpp)展示了如何使用库的 API。 LunarGLASS 项目中的 Frontends/glslang 目录也有类似的用途。
关于c++ - 如何使用glslang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38234986/