# Shader

Shader 是一种给显卡 GPU 执行的程序, 是一种绘制算法,显卡的渲染流水线加载 Shader 代码后,就能够在绘制的时候执行 Shader 的代码。Cocos 有自己的一个Shader 的结构,Shader 的开发语言 cocos 使用的是 GLSL 编程语言。


OpenGL 着色语言(OpenGL Shading Language)是用来在 OpenGL 中着色编程的语言,也即开发人员写的短小的自定义程序,他们是在图形卡的 GPU (Graphic Processor Unit图形处理单元)上执行的,代替了固定的渲染管线的一部分,使渲染管线中不同层次具有可编程性。比如:视图转换、投影转换等。GLSL(GL Shading Language)的着色器代码分成2个部分:Vertex Shader(顶点着色器)和 Fragment(片断着色器),有时还会有 Geometry Shader(几何着色器)。负责运行顶点着色的是顶点着色器。它可以得到当前 OpenGL 中的状态,GLSL 内置变量进行传递。GLSL 其使用C语言作为基础高阶着色语言,避免了使用汇编语言或硬件规格语言的复杂性。