【问题标题】:How can I compile my shader code to SPIR-V for Vulkan within Visual Studio如何在 Visual Studio 中将我的着色器代码编译为 SPIR-V for Vulkan
【发布时间】:2022-11-09 19:00:02
【问题描述】:

我目前正在学习使用 Vulkan 和 Visual Studio。我在 glsl 中编写了顶点和片段着色器,并尝试使用 .bat 文件将它们编译成 SPIR-V 代码。我已将脚本设置为在 Visual Studio 项目中使用 PowerShell 打开,但是当我运行它时,不会创建任何 .spv 文件。如果我在文件资源管理器中运行脚本,这两个着色器会被编译,但不会在 Visual Studio 中编译。现在我只是明确地将编译后的代码添加到项目中,但我希望能够在 VS 中编译它们,所以我不必在玩着色器时继续添加它们。我对 IDE 还很陌生,我仍在试图弄清楚 Visual Studio 的解决方案是如何工作的,以及它们与程序中的实际文件之间的关系。我正在使用 VS 社区 2022。

这些脚本只是对编译着色器代码的函数 glslc.exe 的调用。

C:/VulkanSDK/1.3.224.1/Bin/glslc.exe shader.vert -o vert.spv
C:/VulkanSDK/1.3.224.1/Bin/glslc.exe shader.frag -o frag.spv

在我看到任何输出之前,Powershell 正在关闭。这可能是一个问题而不是VS?

【问题讨论】:

  • 没有看到脚本、VS 设置、控制台输出或其他任何东西,我们无能为力。至少,您应该能够验证脚本是否被调用。

标签: visual-studio shader vulkan


【解决方案1】:

尝试定位绝对路径:

C:/VulkanSDK/1.3.224.1/Bin/glslc.exe C:/output/path/shader.vert -o vert.spv
C:/VulkanSDK/1.3.224.1/Bin/glslc.exe C:/output/path/shader.frag -o frag.spv

当脚本由 Visual Studio 执行时,它可能以不同的工作目录启动。您还应该在批处理文件的顶部有@echo on(默认行为),以确保打印错误(如果有)。

【讨论】:

    猜你喜欢
    • 2019-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    相关资源
    最近更新 更多