Unity渲染路径(一)
Unity渲染路径:
渲染路径决定了光照是如何应用到Unity Shader中的;我们需要在每个Pass中告诉Unity它所使用的渲染路径
大多数项目只会使用一种渲染路径,为整个项目设置渲染路径时可以通过设置RenderingPath(不同版本的点击打开路径可能不一样)
Edit → Project Settings → Player → Other Settings → Rendering Path。
当我们希望使用多个渲染路径时,可以设置摄像机的Rendring Path 以覆盖 Project Settings中的设置;需要注意的是如果当前的显卡无法支持所选择的渲染路径,Unity会自动使用更低一级的渲染路径。
完成以上设置就可以在Pass中使用标签来指定该Pass的渲染路径
在Shader中设置渲染路径
Pass{
Tags {"LightMode" = "ForwardBase"}
} LightMode 标签支持的渲染路径设置选项
标签名 | 描述 |
Always | 不管使用哪种渲染路径,该Pass总会被渲染,但不会计算任何光照 |
ForwardBase | 用于前向渲染。该Pass会计算环境光、最重要的平行光、逐顶点/SH光源 和Lightmaps |
ForwardAdd | 用于前向渲染。该Pass会计算额外的逐像素光源,每个Pass对应一个光源 |
Deferred | 用于延迟渲染。该Pass会渲染G缓冲区 |
ShadowCaster | 把物体的深度信息渲染到阴影映射纹理或一张深度纹理中 |
PrepassBase | 用于遗留的延迟渲染。该Pass会渲染法线和高光反射的指数部分 |
PrepassFinal | 用于遗留的延迟渲染。该Pass通过合并纹理、光照和自发光来渲染得到最后的颜色 |
Vertex、VetexLMRGBM 和VertexLM | 用于遗留的顶点照明渲染 |
指定渲染路径的作用:如果我们在一个pass中使用一些光照变量,但这些光照变量因为没有通过指定的关照路径处理,很可能所得到的值是错误的。