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对比图

                                 

(转)Render Path的更多相关文章

  1. Rendering Path

    Rendering Path:渲染路径 设置:1.Player Setting,2.Camera(会覆盖PlayerSetting中的设置) 选择:根据渲染内容和目标平台来选择合适的Rendering ...

  2. Unity5 的新旧延迟渲染Deferred Lighting Rendering Path

    unity5 的render path ,比4的区别就是使用的新的deferred rendering,之前的4的deferred rendering(其实是light prepass)也被保留了下来 ...

  3. rails 杂记 - render and layout

    官方文档:http://guides.rubyonrails.org/layouts_and_rendering.html 渲染 view 渲染 html.rb 与相应的 action control ...

  4. 渲染路径-Unity5 的新旧推迟渲染Deferred Lighting Rendering Path

    Unity5 的新旧延迟渲染Deferred Lighting Rendering Path unity5 的render path ,比4的区别就是使用的新的deferred rendering,之 ...

  5. Rails :布局和视图渲染

    原文地址: http://guides.ruby-china.org/layouts_and_rendering.html Rails 布局和视图渲染 本文介绍 Action Controller 和 ...

  6. Shader预处理宏、内置状态变量、多版本编译等

    预定义shader预处理宏: Target platform: SHADER_API_OPENGL - desktop OpenGL SHADER_API_D3D9 - Direct3D SHADER ...

  7. Rendering Paths

    渲染路径 Rendering Paths http://game.ceeger.com/Manual/RenderingPaths.html 延迟光照渲染路径的细节 Deferred Lighting ...

  8. webpy使用笔记(一)

    webpy入门 工作环境中需要经常生产和测试服务器,机房一直很混乱,因此萌生了开发一个简单方便的服务器管理系统(说的好高大上,其实就是个可以获取服务器信息的小web应用).之所以选择webpy,正式因 ...

  9. Unity3D内置着色器

    Unity内部提供了一些可以直接使用的着色器,这些内置着色器包括以下6个方面: (1)Performance of Unity shaders 着色器的性能和两个方面有关:shader本身和rende ...

随机推荐

  1. python 全栈开发,Day66(web应用,http协议简介,web框架)

    一.web应用 web应用程序是一种可以通过Web访问的应用程序,程序的最大好处是用户很容易访问应用程序,用户只需要有浏览器即可,不需要再安装其他软件.应用程序有两种模式C/S.B/S.C/S是客户端 ...

  2. java select 多字段处理查询结果辅助类

    接口 ResultSetMetaData 可用于获取关于 ResultSet 对象中列的类型和属性信息的对象 使用示例: ResultSet rs = stmt.executeQuery(" ...

  3. JavaScript常见的真值

    值 说明 var a =true  值等于true: var a = 1 非0的数字 var a =“hello” 有内容的字符串 var a=20/5 运算结果非0 var a='true' 有内容 ...

  4. [转] 通过Ajax方式上传文件,使用FormData进行Ajax请求

    通过传统的form表单提交的方式上传文件: <form id= "uploadForm" action= "http://localhost:8080/cfJAX_ ...

  5. asp.net core 微信公众号支付(扫码支付,H5支付,公众号支付,app支付)之3

    在微信公众号中访问手机网站,当需要调用支付时候无法使用H5支付,只有使用微信公众号支付,使用公众号支付用户必须关注该公众号同时该公众号必须开通公众号支付功能. 1.获取用户的OpenId ,参考之前写 ...

  6. k8s 关键字以及管理流程。

    一.流程图如下 二.用户通过kubectl提交需要运行的docker container(pod). 三.api server把请求存储在etcd里面. 四.scheduler(调度)扫描,分配机器. ...

  7. Python contains

    一.__contains__ 判断字符串中是否包含相应的字符.

  8. php 三元运算符实例详细介绍

    三元运算符的功能与“if....else”流程语句一致,它在一行中书写,代码精练.执行效率高.在PHP程序中恰当地使用三元运算符能够让脚本更为简洁.高效.代码的语法如下: ? 1 (expr1)?(e ...

  9. POJ - 1266 -

    题目大意:给出一条圆弧上的两个端点A,B,和圆弧上两端点之间的一个点C,现在要用一块各个定点的坐标均为整数的矩形去覆盖这个圆弧,要求最小的矩形面积. 思路:叉积在本体发挥很强大的作用.首先求出三个点所 ...

  10. 解决linux下“XX不在 sudoers 文件中。此事将被报告"的问题

    在使用sudo命令时,经常性会提示出“不在 sudoers 文件中.此事将被报告”的错误信息. 这是因为当前登录的账号不在sudo权限里面. sudo命令可以让你以root身份执行命令,来完成一些我们 ...