Unity杂谈-SRP为何再也不使用CG

首先看Unity前期为何使用Cg, 由于Cg能打通HLSL和GLSL.HLSL和Cg语言类似, 差别部分能够用宏来处理, 而Cg到HLSL能够由其余工具进行转换.Cg自己的编译器就能够提供Cg到GLSL的转换, 可是, 生成的GLSL遵照的是NVIDIA的规矩, 对AMD, Intel的支持就有问题编译器

再日后各类着色器语音不断发展, 而Cg则在2012年以后再无更新,在功能上, 看看上图中被打叉的Hull Shader, Domain Shader和Compute Shader.在跨平台方面呢, 向Vulkan, Metal的线也难以链接.编译 这个时候SPIR-V成为了链接全部着色语言新的桥梁.微软推出了DirectXShaderCompiler, 能够把HLSL编译为SPIR-V, 可直接用于Vulkan和较新的OpenGL.Khronos Group则推出了SPIRV-Cross, 能够把SPIR-V转换为OpenGL的GLSL, OpenGL ES的ESSL, Metal的MSL.这样就把全部的着色语言链接了起来, 至于Cg, 很遗憾, 已经没有它的位置了.

参考: https://www.cnblogs.com/yusjoel/p/13272524.html


文章作者: Yonggang Long
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Yonggang Long !
 上一篇
2022-08-10 Yonggang Long
下一篇 
2022-08-10 Yonggang Long
  目录