Shader和渲染管线
什么是Shader
Shader中文翻译为着色器,是一种较为短小的程序片段,用于告诉图形硬件如何计算和输出图像,过去由汇编语言编写,现在也可以使用高级语言进行编写。
即,Shader是一种可编程图形管线的算法片段
主要分为两类,Vertex Shader和Fragment Shader
什么是渲染管线
渲染管线也称为渲染流水线,是显示芯片内部处理图形信号相互独立的并行处理单元。一个流水线是一序列可以并行和按照固定顺序进行的阶段。每个阶段都从它的前一阶段接收输入,然后把输出发给随后的阶段。就像一个在同一时间内,不同阶段不同的汽车一起制造的装配线,传统的图形硬件流水线以流水的方式处理大量的顶点、几何图元和片段
Shader和材质、贴图的关系
Shader(着色器)实际上就是一小段程序,它负责将输入的顶点数据以指定的形式和输入的贴图或者颜色等组合起来,然后输出。绘图单元可以依据这个输出来将图像绘制到屏幕上。输入的贴图或者颜色等,加上对应的Shader,以及对Shader特定的参数设置,将这些内容打包存储在一起,得到的就是一个Material(材质)。之后,我们便可以将材质赋予三维物体来进行渲染(输出)了
举个例子:材质就像引擎最终使用的商品,Shader就像生产这种商品的加工方法,而贴图就像是原材料