什么是Shader?
着色器 (Shader) 应用于计算机图形学领域,指一组供计算机图形资源在执行渲染任务的时使用的指令,用于计算机图形的颜色或明暗。但近来,它也能用于处理一些特殊的效果,或者视频后处理。通俗的说,着色器告诉电脑如何用特有的一种方法去描绘物体。作为渲染器的一部分,负责计算目标的颜色,主要图形软件库有OpenGL和Direct3D。
Unity的shader,和我们熟悉的C、C++、C#、java等语言不同,C++等语言是属于CPU编程。Shader使用的是HLSL,GLSL或CG语言,这些shader语言属于GPU编程,很多语法结构并不符合我们传统的计算机语言的认知,初学者可能感觉很蹩脚。事实上,哪怕是很多中高级开发者,编写shader也不是很顺手,需要边写,边查阅资料。因此应运而生了shader的可视化编辑器,其实可视化编辑器最早在虚幻引擎unreal中就得到了应用,包括蓝图,材质编辑器,行为树编辑器等。而Unity引擎也出现了对应的shader编辑器: Shader Forge , Amplify Shader Editor 和 Shader Graph 。虽然功能各有优劣,但是节省了我们大量的手写shader的时间,很值得我们去学习。