此文仅供参考使用。this is reference not a manual!
所以知识点比较零碎,如果有时间我会整理一下概念,组织一下逻辑,让弱基础的读者理解。
老生重提,学过shader编程的同学应该知道,一个特效的形成是由3部分组成(像魔戒三部曲一样)。物体材质+光源+视摄像机共同渲染的结果。物体材质是我们可以编程的如何接收光,反射,折射等,这一部分涉及物理光学(突然好高大上),计算机靠数学函数模拟光照的特征,计算出光照强度颜色等,最终反映到屏幕上被肉眼接收。那摄像机有vertexlit,forward,deferred三种模式干嘛? 其实摄像机就是统一规定屏幕内的物体都是以什么方式被渲染的,VertexLit顶点方式则全部用物体材质中的vertex path渲染路径去刻画每一个物体,如果(当前显示)摄像机用forward模式,则查找物体材质shader程序中forward base/forward add path去刻画物体,如果找不到则还是用vertex path去刻画。如果(当前显示)摄像机用deferred模式,则查找物体材质shader程序中PrepassBase/PrepassFinal path(这里不是deferred开头额。)方法去刻画物体,找不到则寻找forward base/forward add path去刻画物体,再找不到则使用最低级的vertex path去渲染,再找不到?有个FallBack “Diffuse”就是最终使用unity系统默认渲染方法来渲染..您就甭管了…
所以摄像机的渲染模式就像一个总开关… 而材质的渲染路径path就是总开关下的各种串并联电路,决定哪种渲染方式合适,而光源有两种光照vertex/pixel和材质渲染