【Unity Shader】Unity前向渲染

unity前向渲染Pass

ForwardBase Pass(优先渲染),渲染一个逐像素平行光和所有的顶点/球面调和光,阴影只和平行光有关系,那阴影应该是这个Pass中实现的
ForwardAdd Pass(需要和Base配合使用,否则不生效),渲染剩余全部逐像素灯光

决定一个光源使用哪种处理模式取决于它的类型和渲染模式

光源类型指的是该光源是平行光还是其他类型的光源
光源的渲染模式指的是该光源是否是重要的(Important)

Unity会根据场景中各个光源的设置以及这些光源对物体的影响程度(比如,距离该物体的远近光源强度等)对这些光源进行一个重要度排序。其中每个顶点最多计算4个逐顶点光照。其他的光以球谐函数(SH)的形式计算

逐像素的光源分类(默认最大4个)

最亮的方向光始终为每像素光源,就是场景中的主平行光
Render Mode 设置为 Important 的光源始终为每像素光源。

逐顶点的光源分类(默认最大4个)

Render Mode 设置为 Not Important 的光源始终为每顶点或 SH 光源。

球谐的光源分类(数量无限制)

Render Mode 设置为 Not Important 的光源始终为每顶点或 SH 光源。

参考

参考冯乐乐shader入门精要 https://zhuanlan.zhihu.com/p/509253252
官方 https://docs.unity3d.com/cn/current/Manual/RenderTech-ForwardRendering.html

猜你喜欢

转载自blog.csdn.net/qq_22849251/article/details/131044579