我试图找出所有着色器语言之间的差异。我正在使用 Vulkan 用 C++ 开发一款游戏,这意味着(如果我没读错的话)我向 Vulkan 提供的每个着色器都必须采用 spir-v 扩展。
但我有时看到这个库的用途:https://github.com/KhronosGroup/SPIRV-Cross 它可以将 spir-v 翻译为其他语言(GLSL、HLSL 或 MSL),当我尝试时它是否有用做一个游戏?不适用于不同平台上的着色器。
或者也许我需要这些不同的格式来使用它们或不同的平台?(这似乎不正确,因为 vulkan 寻找 spir-v)。尽管如此,我看到有一个工具MoltenVK可以在Mac上使用着色器。这意味着 mac 不能正确支持 vulkan?那么这些语言的优点和缺点是什么?(我的意思是在创建游戏时,用户不应该修改着色器)
我希望我的问题不会太模糊。