Я использую кодовую базу Джонно Робсона Vulkan из github, найденную здесь: Vulkan-Terrain-Generator в качестве руководства или учебного пособия для лучшего понимания Vulkan.У меня нет никаких проблем с самим исходным кодом, но мой вопрос или беспокойство касаются компиляции кодов шейдеров GLSL в код Spir V.Я новичок в SpirV его компиляторы и наборы инструментов.Я попытался использовать оба: glslangValidator.exe и glslc.exe для преобразования файлов шейдеров в файлы Spir V.
В кодовой базе Джонно он преобразовал каждый файл шейдера GLSL в соответствующий файл spirv.Я попытался использовать параметры флага, которые он использовал в своем пакетном файле, с той лишь разницей, что я заменил каталог, который указывает на его glslangValidator.exe, своим собственным каталогом.
Я пытаюсь добиться того же эффекта, когда все шейдерные файлы, находящиеся в каталоге пакетного файла, будут компилироваться из GLSL в Spir V, где он добавит .spv
кконец каждого из новых файлов SpirV, которые он сгенерирует в этом каталоге после преобразования его из GLSL в соответствующий байт-код Spir V.
Вот как выглядит мой пакетный файл:
compile.bat
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 шейдеров.
Как мне добиться этого или каковы правильные аргументы команды для glslangValidator или glslc для создания необходимых файлов SpirV?
Я прочитал документы, найденные здесь: SPIR-VНабор инструментов , но я все еще не уверен, как правильно сгенерировать необходимый командный файл.