参考文章1:https://www.cnblogs.com/lixiang-share/p/5025662.html
参考文章2:https://blog.youkuaiyun.com/weixin_39706943/article/details/81485758
1.Shader简述
(1)CPU(Central Processing Unit,中心处理器):主要负责操作系统和应用程序。
(2)GPU(Graphics Processing Unit,图形处理器):主要负责跟显示相关的数据处理。
(3)与显示相关数据处理使用GPU的优点:GPU具有高并行结构,所以GPU在处理图形数据和复杂算法方面拥有比CPU更高的效率。CPU大部分面积为控制器和寄存器,与之相比,GPU拥有更多的ALU(Arithmetic Logic Unit,逻辑运算单元)用于数据处理,这样的结构适合对密集型数据进行并行处理。
(4)Shader(着色器):可编程图形管线(图形管线:计算机处理图形显示的处理流水线)。
(5)Shader主要分为:Vertex Shader和fragment Shader,即定点Shader和片段Shader。
(6)Shader 的主流编程语言。主流的Shader编程语言主要有HLSL、GLSL、CG。下面简单说一下区别:HLSL(High Level Shader Language)是微软基于DX的作品,只能运行在Windows平台上。GLSL(OpenGL Shading Language),OpenGL着色语言,是用来在OpenGL中着色编程的语言(OpenGL是个定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口),是跨平台的着色器语言。到这里,我们已经可以发现有一个比较麻烦的问题出现了,就是我们底层图形驱动限制了上层的编程语言,一旦想要改动图形驱动库,那就不得不重写整个Shader Files,此时CG就应运而生了,CG在HLSL和GLSL上做了进一步封装,屏蔽了上层的着色器语言对底层图形库的依赖。
(7)Unity Shader。ShaderLab其实是Unity对Shader语法结构的一种包装,其中支持三种Sha