5

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 バイナリにコンパイルするためだけに必要です (シェーダー コンパイルに関するデバッグ情報を含む)。これは、すでにやったことがあるか、経験が豊富な人にとっては非常に簡単な質問だと思います。

4

3 に答える 3

4

使用する必要のあるライブラリがいくつかあります。注目すべき消費者の例は LunarGLASS: https://github.com/LunarG/LunarGLASSです。そこで、ファイルを見ることができます:

https://github.com/LunarG/LunarGLASS/blob/master/CMakeLists.txt

ライブラリ用にこれが含まれているのはどれですか:

set(GLSLANGLIBS
    glslang
    HLSL
    OSDependent
    OGLCompiler
    SPIRV)

glslang の readme には、いくつかの重要な情報が含まれています。さらに、glslang 内で、glslangValidator ツール (基本的には StandAlone.cpp) は、ライブラリの API の使用方法を示します。LunarGLASS プロジェクトの Frontends/glslang ディレクトリも同様の用途に使用されています。

于 2016-07-08T17:43:07.443 に答える
4

https://github.com/google/shadercの Shaderc プロジェクトは、Glslang のコンパイラを SPIR-V にラップする使いやすい C++ API を提供します。

使用例については、https://github.com/google/shaderc/blob/master/examples/online-compile/main.ccを参照してください。

于 2016-08-30T19:38:51.300 に答える