GLSL 着色语言,Vulkan 不再像 OpenGL 一样指定了高层的着色器编程语言(如 OpenGL 指定采用GLSL 着色器编程语言),而是采用一种被称为 SPIR-V 的二进制中间层格式。这样,开发人员在开发 Vulkan 着色器时可以选用自己青睐的着色器编程语言,诸如 GLSL, HLSL, CG等。
用开发人员自己青睐的着色器编程语言开发完着色器后,再采用专用编译器将着色器代码编译为SPIR-V 格式即可在Vulkan 中使用,大大提高了灵活性。因此,对于Vulkan 开发人员而言,至少熟练掌握一种着色器编程语言(也可以简称为着色语言)。GLSL 是Vulkan 开发中使用频率最高的着色语言,也是原先 OpenGL 中指定采用的着色语言。
GLSL 着色语言是一种高级的图像编程语言,源自应用广发的 C 语言,同时具有 RenderMan 以及其他着色语言的一些优良特性,易于被开发人员掌握。
与传统通用编程语言有很大不同的是,GLSL 提供了更加丰富的原生类型,如向量,矩阵等。这些特征的加入使得 GLSL 着色语言在处理 3D 图形方面更加高效、易用。简单来说,GLSL 着色语言主要包含以下特征。
- GLSL 着色语言是一种高级的过程语言(注意,不是面向对象)
- 对顶点着色器、片元着色器、曲面细分着色器、几何着色器以及计算着色器使用的是同样的语言,不做区分。
- 基于 C/C++ 的基本语法及流程控制。
- 完美支持向量与矩阵的各种操作。
- 通过特定限定符来管理输入和输出。
- 拥有大量的内置函数来提供丰富的功能。
总之,GLSL 着色语言是一种易于实现、功能强大、易于使用,并且可以高度并行处理、性能优良的高级图形编程语言。同时 GLSL 可以帮助开发人员在不浪费大量时间的情况下,轻松地为用户带来更完美的视觉体验,开发出更加酷炫的 3D 场景和特效。