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. 每日英语:Teens Are Still Developing Empathy Skills

    The teen years are often fraught with door-slamming, eye-rolling and seeming insensitivity, even by ...

  2. Android 编程下 TextView 添加链接的一种方式

    通过如下这种方式给 TextView 添加的链接支持链接样式.点击事件.href 样式,代码如下: package cn.sunzn.tlink; import android.app.Activit ...

  3. Android 视觉规范

    各种分辨率下图片尺寸 工程师通常开发三套UI布局文件,所以设计师通常也要不同的需求处理2-3套切图. con Type Standard Asset Sizes (in Pixels), for Ge ...

  4. [MyBean说明书]-添加IApplicationContextEx01接口手动加载库文件

    主控台接口实现了IApplicationContextEx01接口,可以手动执行加载DLL和配置文件,具体使用方法可以参见DEMO(samples\manualLoadLib)   IApplicat ...

  5. 【Android】OAuth验证和新浪微博的oauth实现

    关于OAuth验证 OAuth是当下流行的授权方案,twitter,facebook,google等大型网站的开放平台都支持了oauth验证模式,国内的新浪微博.腾讯微博.163微博的开放平台也相继支 ...

  6. Asp.Net MVC Areas区域说明

    一般网站分为前台+会员后台+管理员后台,做过webform的人都会把会员后台页面放在user中,把管理员后台页面放在admin中 会员后台访问:www.xxx.com/user/xxx.aspx 管理 ...

  7. 在java代码中,用xslt处理xml文件

    http://blog.csdn.net/zhou_lei/article/details/2661735 ********************************************** ...

  8. 【论文笔记】CNN for NLP

    什么是Convolutional Neural Network(卷积神经网络)? 最早应该是LeCun(1998)年论文提出,其结果如下:运用于手写数字识别.详细就不介绍,可参考zouxy09的专栏, ...

  9. Python socket编程客户端与服务端通信

    [本文出自天外归云的博客园] 目标:实现客户端与服务端的socket通信,消息传输. 客户端 客户端代码: from socket import socket,AF_INET,SOCK_STREAM ...

  10. JAVA-JSP内置对象之page对象调用Servlet

    相关资料:<21天学通Java Web开发> page对象1.page对象代表JSP转译后的Servlet.2.通过page对象可以非常方便地调用Servlet类中定义的方法. pageD ...