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. MyBean-关于plugMap共享对象

    plugMap实现了对象的存储,使用setObject,和getObject来对对象进行存储   内部其实是一个列表,而且他会在释放的时候会情况尝试释放所有的对象,所以如果你共享的对象提前进行了释放, ...

  2. iframe自适应当前页面高度

    <style type="text/css"> *{margin:0;padding:0;list-style-type:none;} </style> & ...

  3. Spring Boot Application 事件和监听器

    https://www.cnblogs.com/fdzfd/p/7872909.html ***************************************************** 一 ...

  4. spring boot guava cache 缓存学习

    http://blog.csdn.net/hy245120020/article/details/78065676 ****************************************** ...

  5. 【Python】京东商品价格监控

    import requests,json,re,winsound,time class Stock(object): def __init__(self): self.province_dict={v ...

  6. jQuery 学习笔记3 点击弹出一个div并允许拖拽移动

    这里我看了下http://qings.blog.51cto.com/4857138/998878/ 的文章,感谢他的分享. 首先我们有一个a标签和一个div,div默认是不显示的,当用户点击时改为显示 ...

  7. sql分割字符串

    DECLARE @str NVARCHAR(MAX); SET @str = 'aa|bb|cc|dd'; ) SET @str += '|' BEGIN SET @n = LEFT(@str, CH ...

  8. java框架篇---Struts入门

    首先理解Struts与MVC的关系 在传统的MVC模式中所有的请求都要先交给Servlet处理,之后由Servlet调用JavaBean,并将结果交给JSP中进行显示.结构图如下 Struts是Apa ...

  9. Android NFC近场通信2——NFC标签调度

    上面一篇文章简单介绍了NFC的背景和技术应用,今天主要是讲解一下NFC如何发起通信和标签通信(主要是翻译android官网的资料,中间加入个人心得). NFC总是在一个发起者和一个被动目标之间发生.发 ...

  10. iOS中 语音识别功能/语音转文字教程具体解释 韩俊强的博客

    原文地址:http://blog.csdn.net/qq_31810357/article/details/51111702 前言:近期研究了一下语音识别,从百度语音识别到讯飞语音识别:首先说一下个人 ...