Shader Language小整理1 GLSL、SPIRV、HLSL
HLSL经过DirectXShaderCompiler的编译,可以生成用于DX12的DXIL,也可以生成Vulkan和较新的OpenGL用的SPIR-V。
对于SPIR-V,可以利用SPIRV-Cross来生成OpenGL用的GLSL,OpenGL ES使用的ESSL,Metal使用的MSL,DX9/10/11使用的老的HLSL。
对于Vulkan来说,需要使用外部的GLSL做前半段的预编译,然后Shader会以SPIR-V这个中间形式存在。使用SPIRV的好处是:
1、开发者再也不会暴露shader源文件
2、语法错误也会在SPIR-V步骤就会显示,而不是运行时才会报错
3、并且因为有预编译过程,程序运行也会更快。