ここにあるgithubのJonno RobsonのVulkanコードベースを使用しています:Vulkan-Terrain-Generatorは、Vulkanをよりよく理解するためのガイドまたは学習リファレンスとして使用しています。ソース コード自体には問題はありませんが、GLSL シェーダー コードを Spir V コードにコンパイルすることに関する質問または懸念事項があります。SpirV のコンパイラとツール キットは初めてです。glslangValidator.exe と glslc.exe の両方を使用して、シェーダー ファイルを Spir V ファイルに変換しようとしました。
Jonno のコード ベースでは、各 GLSL シェーダー ファイルを対応する spirv ファイルに変換しました。彼がバッチ ファイルで使用したフラグ オプションを使用してみましたが、唯一の違いは、彼の glslangValidator.exe を指すディレクトリを自分のディレクトリに置き換えたことです。
バッチ ファイルのディレクトリにあるすべてのシェーダー ファイルを GLSL から Spir V にコンパイルして.spv
、新しい SpirV ファイルのそれぞれの最後に追加するのと同じ効果を達成しようとしています。 GLSL から適切な Spir V バイト コードに変換した後、そのディレクトリに生成されます。
私のバッチファイルは次のようになります。
コンパイル.バット
C:\VulkanSDK\Bin\glslangValidator.exe -V %1 -o %1.spv
pause
ただし、バッチファイルをダブルクリックしてもうまくいきません。開いて実行しますが、期待されるshader_filename.vert.spv
...shader_filename.frag.spv
ファイルを生成していません。
彼らがどのプラットフォームで実行したかはわかりませんが、私は Windows 7 を実行しており、バッチ コマンド内で供給されるコマンド引数またはフラグに違いがあるかどうかはわかりません。彼らが Vulkan SDK 内の他のツール キットを使用したのか、それとも外部のライブラリやツールを使用したのか、それ以外のものを使用したのかはわかりません。
このバッチ ファイルでできることは、すべてのシェーダー ファイルを適切な Spir V ファイルに、最も単純なバッチ コマンドで変換することです。このディレクトリには 20 を超えるシェーダーがあるため、シェーダー ファイルごとに同じコマンドを何度も記述する必要はありません。
どうすればこれを達成できますか、または必要な SpirV ファイルを生成するための glslangValidator または glslc の適切なコマンド引数は何ですか?
ここにあるドキュメントを読みました: SPIR-V ツールチェーンですが、必要なバッチ ファイルを適切に生成する方法がまだわかりません。