GI

global illumination 全局照明
indirect illumination 间接照明
模拟出光线追踪的效果

实现方法:
1.ssao系列 
2.lightmap、辐射度
3.PBRT

实时GI:
LPV cryengine 《Cascaded Light Propagation Volumes for Real-Time Indirect Illumination》
SVO ue4 《Interactive Indirect Illumination Using Voxel Cone Tracing》 补充:UE4现在出来了,还是用的LPV,SVO应该跑不了!
KlayGE中用到的:VPL MSII RSM(reflective shadow map) 《Multiresolution Splatting for Indirect Illumination》

GI操作:

  全局光照的特点在于能够捕捉间接光照,所以5以后,除开原来的direct light的效果,增加indirect light的效果,简单来说,就是除开光源之后,然后模型本身做为光源,幅射到别的模型上,层层递归后的效果。现不管是预计算实时GI还是烘培GI都只是针对静态模型。预计算Gi的实时光源与烘陪对应的烘培光源里的强度与反射强度都会影响幅射图与方向图的内容。需要注意,预计算Gi针对的是实时方向光,而烘培GI针对的是烘培方向光。

全局光源

  Skybox :天空盒,参考材质Skybox/Cubemap,如果全局光源与全局反射探头都选择Skybox模式,则会把Skybox当做一个Cubemap,场景所有模型,静态与非静态的一部分光源从这个Cubemap反射上得到。

  Sun:Skybox选择一个方向光,以这个方向光的方向做方向,这个方向光如颜色与强度不影响全局本身,如果没有设置方向光,选择强度最大的那个方向光源。

  Ambient Source:全局光源,如果设置天空盒,但是天空盒本身没有设置,自动选择下面的全局颜色设置,全局反射探头以Ambient Source当做光源。

  Ambient Intensity:全局光源强度,越高越亮,为0时,光源不起作用。

  Ambient GI:当预计算GI与烘培GI二个都选择后,这个可以选择是用实时还是烘培。

  Reflection Source:Unity默认放入的全局反射探头,选择Skybox会以Ambient Source里提供的光源颜色做反射,同时也可以自己提供cubemap当做反射源。

  Resolution:反射探头解析度,应该是对应RTT的cubemap六张纹理的分辨率。

  Compression:是否压缩。

  Reflection Intensity:Reflection Source针对所有模型反射强度,值越大,相应的模型面上显示越清晰的Reflection Source。

  Reflection Bounces:当设置多个Reflection Probe时,互相反射对方信息的次数,如二面镜子。

GI设置

  Precomputed Realtime GI

  预计算实时GI,针对实时静态物体之间的幅射光,故相应的幅射图与方向图都是低分辨率下的。动态物体可以使用光照探头来得到相应反射光源信息,注意动态模型与光探头的距离。

  Realtime Resolution:预计算实时GI,把场景分成许多格,得到每个格的幅射信息。那么这个值越高,计算量将以平方增加,最终值还将和General GI里的光源参数里的Resolution相乘。

  CPU Usage:生成相应GI的数据时,在游戏运行时分配多少CPU计算能力。

  Baked GI

  烘培GI,因此能得到更精确的模型之间的反射光信息,但是不能运行时更改相应的光源信息,如颜色,方向,预计算实时GI没有这个问题。

  Baked Resolution:一般来说,是Realtime Resolution 10+,因为相应的幅射图与方向图精确度要高很多。

  Baked Padding:网上说是光照贴图中分隔的距离,还需要验证。

  Compressed:是否压缩

  Ambient Occlusion:值越高,遮挡地区得到的光比差越大。

  Final Gather:用FG技术来产生烘培数据,这种技术时间会长一些。参考http://blog.sina.com.cn/s/blog_46c56d9a0100gqbv.html

  Ray Count:Final Gather所用的光线追踪光线数目。

  Atlas Size:图集里贴图的大小,越低实际占用越精确也就是越小,但是贴图产生越多,应该选择一个合适的大小。   

  General GI

  预计算实时GI还是烘培如何生成.

  Direction Mode:幅射图/带方向光/加镜面,具体看Shader分析,其中预计算实时GI与烘培GI在这生成的相应幅射图,方向图等有所不同,后面会提到。

  

  Indirect Intensity:间接光的强度。

  Default Parameters:生成相应贴图所需要的信息。

  其中全局预计算GI,烘培GI,全局反射探头相应的改动需要重新烘培,如果选择自动,相关改动会自动在后台烘培。

  上面这些说实话,写这么操作没啥用,自己对着每项实践一篇,什么都清楚了。

Light Probe:

  对于GI来说,不管是预计算GI与烘培GI,都不会对非静态模型计算间接反射,光探头的加入,可以使非静态模型得到周围静态模型的幅射光,主要技术原理使用一种球谐光照的技术,注意light probe一般不会对静态模型有影响,你看到的影响,只是因为非静态模型的颜色变化大造成的反差。

  相关球谐光照的技术原理可以参见,本人也看不懂,只能说看了后有点印象是怎么回事:

  球谐光照(上)

  http://www.yasrt.org/shlighting/

  http://www.cppblog.com/init/archive/2012/09/19/191182.html

  一种2D傅立叶级数的球形推广,可以把光照函数展开成SH基函数的叠加,类似傅立叶变换能把任何函数展开成正弦波的叠加,对光照图来说一般只用2 bands = 4 RGB textures,通过丢失高频细节来压缩存储。  

Reflection Probe:

  定义一个Cubemap用来影响周围模型的镜面反射,给镜面高光模型使用。

  一般来说,我们想得到一个实时场景的Cubemap,只需要在一个点,用摄像机对着前后,左右,上下,各拍摄一次,形成6个面,组合成Cubemap.

  Type:烘培,用户,自动。其中,烘培就是用户来控制生成一个当前的场景cubemap,用户就是用户自己提供一个cubemap,实时就是不断更新这个cubemap以映射最新的场景。

  当选择实时,Refresh mode:On  awake启动时,每桢,用户脚本控制,当每桢时,如下选择。

  Time slicing:一桢先生成6个面,后面8桢每桢生成一个mipmap,一共9桢。

  Individual face:6面6桢,加后面8桢每个mipmap,一共14桢。

  No time slicing:一桢内把mipmap与cubemap全部生成。

  Importance:当多个反射探头影响一个模型时,这个参数影响这个反射探头的比重。

  Intensity:间接光强度,强度影响镜面反射,镜面反射越亮。

  Box Projection:从着色代码来看,应该根据当前反射探头的源点与AABB影响是模型原来法线。

  Size:大小,范围内的模型使用这个。

  Probe Origin:原点。

  Cubemap capture sttings:

  Resolution:cubempa材质的大小。

  HDR:高光。

  Shadow Distance:阴影距离,数值越少,阴影越近。

  下面就是RTT对应摄像机的属性。

Unity5-----------之GI设置简介的更多相关文章

  1. Arch Linux安装后的一些初始设置简介

    配置有线网络. 没网络的时候,可以直接设定ip应急,后面 netctl 才是正规设置: # ip addr add 192.168.0.100/24 dev enp0s4# ip link set d ...

  2. Eclipse Java注释模板设置简介,更改字体大小

    为类添加注释:此为我的模板设置注释模板的入口: Window->Preference->Java->Code Style->Code Template 然后展开Comments ...

  3. Subversion Server Edge用户权限设置简介

    Subversion Server Edge用户权限可分为两种,一种为按用户权限,一种为按组权限设置 1.按用户设置权限 [codeLibrary:/] //对整个代码库 *=r     //所有用户 ...

  4. Unity5 GI与PBS渲染从用法到着色代码

    http://www.cnblogs.com/zhouxin/p/5168632.html 本文主要介绍Untiy5以后的GI,PBS,以及光源探头,反射探头的用法以及在着色器代码中如何发挥作用,GI ...

  5. Unity5 新功能解析--GI(全局光)

    http://blog.csdn.net/leonwei/article/details/48009059 Unity5带来的最大的改变就是全新的GI,在烘焙引擎上抛弃了4的beast,使用了虚幻采用 ...

  6. 【Unity】13.2 通过Lighting Window设置相关参数

    分类:Unity.C#.VS2015 创建日期:2016-05-19 一.简介 Unity 5.3.4的Lighting Window有3个选项卡:Object.Scene.Lightmaps. 二. ...

  7. 【Unity】13.1 场景视图中的GI可视化

    分类:Unity.C#.VS2015 创建日期:2016-05-19 一.简介 在场景视图中设计不同的场景内容时,可以根据需要勾选相关的渲染选项,以便让场景仅显示其中的一部分或者全部渲染效果. 在这些 ...

  8. iOS数据持久化文件读写之偏好设置

    很多iOS应用都支持偏好设置,比如保存用户名.密码.字体大小等设置,iOS提供了一套标准的解决方案来为应用加入偏好设置功能.每个应用都有个NSUserDefaults实例,通过它来存取偏好设置.比如, ...

  9. 动态GI

    在Engine/Config 目录中找到ConsoleVariables.ini并打开,在其中加入 r.LightPropagationVolume = 1 ,保存,重启引擎 如果场景中有Post P ...

随机推荐

  1. 每日英语:Three Shows That Changed The Way Networks Think About Viewership

    As we continue examining this season’s DVR success stories in The Blacklist and Sleepy Hollow it mak ...

  2. python求线性回归斜率

    一. 先说我对这个题目的理解 直线的x,y方程是这样的:y = kx+b, k就是斜率. 求线性回归斜率, 就是说 有这么一组(x, y)的对应值——样本.如果有四组,就说样本量是4.根据这些样本,做 ...

  3. IntelliJ IDEA中的properties文件乱码转成中文[unicode码转中文]

    在IntelliJ IDEA中,一些.properties后缀的配置文件中的中文常常会是下面的样子,看不懂怎么办? 解决办法:File-->Settings-->File Encoding ...

  4. 前端js上传文件插件

    1. plupload文件上传 2.ajaxfileupload文件上传

  5. 在Jenkins上做一个定时闹钟

    [本文出自天外归云的博客园] 利用Jenkins定时任务来做一个闹钟,每天隔一段时间提醒自己一下“你该休息了!别老坐着!出去走一走!珍爱生命,远离久坐!” 首先在Jenkins上创建一个node. 创 ...

  6. RTX——第19章 SVC 中断方式调用用户函数(后期补历程)

    以下内容转载自安富莱电子: http://forum.armfly.com/forum.php 本章节为大家讲解如何采用 SVC 中断方式调用用户函数. 当用户将 RTX 任务设置为工作在非特权级模式 ...

  7. JAVA-JSP内置对象之session对象获得session的其他信息

    相关资料:<21天学通Java Web开发> session对象 获得session的其他信息 SessionDemo2.jsp <%@ page language="ja ...

  8. EM算法学习资料备忘

    将学习EM算法过程中看到的好的资料汇总在这里,供以后查询.也供大家參考. 1. 这是我学习EM算法最先看的优秀的入门文章,讲的比較通俗易懂,并且举了样例来说明当中的原理.不错! http://blog ...

  9. <![CDATA[ ]]>是什么意思

    全名:character data在标记CDATA下,所有的标记.实体引用都被忽略,而被XML处理程序一视同仁地当做字符数据看待,CDATA的形式如下:<![CDATA[文本内容]]>CD ...

  10. Objective的宏到swift中该怎么办?

    ReadMehtml, body {overflow-x: initial !important;}.CodeMirror { height: auto; } .CodeMirror-scroll { ...