zoukankan      html  css  js  c++  java
  • Unity3D教程宝典之Shader篇:第九讲Render Path

    Render Path定义
    Render Path,就是采取的光照流程。


    Render Path设置
    可以在Edit-> Project Settings->Player 里设定,见下图。也可以直接在摄像机的Inspector面板里设置。



    Render Path详细讲解
                                        
    一:
    Vertex Lit
    Vertex Lit即顶点光照,顾名思义, 就是所有的光照计算都是在顶点进行的,因此所有的像素运算效果都不支持,如阴影,法线贴图,light cookies等。一个物体一般只有一个pass。效果最差,运行最快。适合老设备或者一般的移动设备。

    二:Forward Lighting
    Forward Lighting是以shader为基础的。支持像素光照(包括法线贴图和light cookies)。支持单方向光的实时阴影。通常最亮(对环境影响最大)的光在Render Mode项勾选Important,对应Forward,其余的用Not Important,对应Vertex Lit。
    细节:
    (1)最亮的几个光源使用像素计算
    (2)其次的(最多4个)使用顶点计算。剩余的使用
    (3)Spherical Harmonics (SH)计算,它是一种快速的近似算法。

    判断顺序
    1.Render Mode为Not Important的肯定是顶点计算或者SH.
    2.亮度值最高的方向光肯定是像素计算
    3.Important的是像素计算。
    如果光的数量没有达到Quaility Setting里设置的Pixel Light Count。则依据亮度值将顶点或者SH转换成像素计算。




    Bass Pass: 渲染一个像素计算的方向光。以及所有顶点计算和SH方向光。之后每增加一个逐像素计算的光都需要增加一个对应的pass.LightMap在此应用,在此步的方向光可以有阴影。
    Additional Pass:额外的像素计算光,无阴影。也就是说Forward Lighting只支持一个有阴影的方向光。

    SH:
    Spherical Harmonics,效率极高,不支持light cookies和法线贴图,更新频率慢,不支持镜面反射,



    三:Deferred Lighting
    Deferred Lighting 给予光照和阴影最棒的效果,对设备性能要求最高。要求Unity Pro。不支持移动设备及Flash。
    细节:支持,多个带实时阴影的光(例如足球里多个灯打在球员身上的效果),  不真正支持反锯齿,不支持半透明。至少是Shader Model 3.0 。光照是在屏幕裁剪空间计算的,所以复杂度是根据涉及的像素点的数量,而并不是场景模型的复杂度。适合小范围光源
    三个阶段:
    Base Pass: 绘制深度缓冲等裁剪空间的缓冲信息。储存在一张ARGB32 Render Texture中,RGB存该点法线,A存镜面反射强度。如果深度能读取为Texture的话,深度不会被显式渲染。不能读取的话,则使用着色器替换Shader Replacement,即Camera.RenderWithShader。Base Pass的结果是,场景的物体附带了深度缓冲,以及一张储存法线和镜面强度的Texture。
    Lighting Pass: 只支持Blinn-Phong光照模型,阴影也是在这一步计算。之前产生的缓冲在这一步用于计算光照。产生的光照缓冲同样是一张ARGB32 Render Texture,RGB表漫反射光的颜色,A表单色镜面光 。
    Final Pass: 将纹理颜色与储存的光照结果组合。LightMap在这一步被应用 注意:在Deferred Lighting的这一步完成后,才会到Forward Lighting。


    Render Path对比图
                                     

  • 相关阅读:
    PAT 1088. Rational Arithmetic
    PAT 1087. All Roads Lead to Rome
    PAT 1086. Tree Traversals Again
    PAT 1085. Perfect Sequence
    PAT 1084. Broken Keyboard
    PAT 1083. List Grades
    PAT 1082. Read Number in Chinese
    求最大公因数
    [转载]Latex文件转成pdf后的字体嵌入问题的解决
    [转载]Matlab有用的小工具小技巧
  • 原文地址:https://www.cnblogs.com/zdlbbg/p/4329201.html
Copyright © 2011-2022 走看看