说到Unity的shader,和我们熟悉的C,C++,C#,java等语言不同,C++等语言是属于CPU编程,语法几乎和我们的英语语法很接近了,理解和学习起来很方便。但是Shader使用的是HLSL,GLSL或者CG语言,他们是属于GPU编程的,很多语法结构并不符合我们传统的计算机语言的认知,初学者可能感觉很蹩脚。事实上,哪怕是很多中高级开发者,编写shader也不是很顺手,需要边写,边查阅资料。
因此应运而生了shader的可视化编辑器,其实可视化编辑器最早在虚幻引擎unreal中就得到了应用,包括蓝图,材质编辑器,行为树编辑器等。而Unity引擎这边,也出现了对应的shader编辑器:ShaderForge,AmplifyShaderEditor和ShaderGraph。虽然功能各有优劣,但是节省了我们大量的手写shader的时间,很值得我们去学习。
接下来,我们就开始untiy-shader编辑器的学习。
简称ASE,和shaderforge原理和操作基本一致,都是根据unreal的材质编辑器的原理开发的。但是因为出现稍晚一些,大概到2017年,所以用户解除较晚,一致等到shaderforge停止更新,才开始真正普及。好在原理和shaderforge一样,所以熟悉起来并不麻烦。
原理:基于单个静态模板生成的.shader文件,将节点信息以