GI是什么? GI =直接光照+间接光照+环境光+反射光.
直接光照先不用说了,
间接光照是光线在物体上反射所带来的光照. 核心参数: 每个光源上的Bounce Intensity.
环境光可以直接理解为你天空盒的颜色, 蓝天白云, 那么环境光就是蓝色白色. 核心参数: Lighting视图中的Ambient Intensity.
反射光可以理解为镜面反射一样的存在, 核心参数: Lighting视图中的Reflection Intensity
请各位逐一尝试这四个参数并且尝试能将场景调成纯黑然后再调回来, 就能理解其中的概念了.

GI分为两种, 一种是Precomputed Reatime GI, 这种GI需要预先计算, 计算场景中所有的Static物体的信息, 并且允许在运行时任意修改光源的Bounce Intensity或者移动光源的位置. 所有的变化都是实时的.
第二种是Baked GI, 这种GI不会预先计算但会进行预先烘焙, 无法像Precomputed Realtime GI那样在运行时更改光源.

GI的重点在于Bounce , 可以将Static物体上的光反弹到其他Static物体上, 无法将非Static物体上的光反弹到Static物体上. 也无法将Static物体上的光反弹到非Static物体上, 但是Unity5引入了新的概念, 那就是Realtime的LightProbe, Unity4中的LightProbe只能静态烘焙, 而Unity5的LightProbe会实时捕捉包括Precomputed Realtime GI的Bounce光在内的任何光线信息并且将其赋予非Static物体上.

要想完全理解GI, 首先要好好说一下Lighting面板.

先说重点的Scene页面.

Environment Lighting这些内容控制的是场景总体的光线信息, 包括天空盒的设置, 可以赋予一个天空盒材质上去, 而天空盒材质在Unity5里面也有更新, 很有意思, 大家可以试试, 新建一个材质然后选择Skybox/Procedural就行了.
Sun---如果你的天空盒材质是Skybox/Procedural那么这里允许指定一个Directional Light, 你试着旋转一下这个Directional Light就知道他是干嘛的了.
Ambient Source---环境光来源, 一般都是天空盒. 如果你的天空盒会在游戏运行时实时变化, 一定要在Ambient GI这里选择Realtime, 否则可以选择Baked.
Reflection Source---镜面反光的来源, 说到镜面放光, 需要说到Reflection Probe, 可以理解为Reflection Probe会规定一个区域, 任何进入这个区域的物体的镜面反光的信息都会被覆盖, 而没有进入任何Reflection Probe的物体的镜面放光的信息就是这个Reflection Source所指定的内容.
Reflection Bounces---当你使用Reflection Probe的时候, 最多允许镜面来回反弹几次, 举个例子, 两面镜子对着放, 会有无穷的发射次数, 而这显然是有性能消耗的, 这里指定这个来回反弹的最大的次数.

Precomputed Realtime GI的概念是, 预先计算场景中的所有静态物体的信息, 具体计算出来了哪些信息咱们开发者不用操心, 这些计算出来的信息会用于实时GI.
Realtime Resolution控制的是实时GI的分辨率, 建议不要调太高.

CPU Usage这个越大, 在调节Realtime光源的时候, GI效果就会响应得越快。

Baked GI就是烘焙光影贴图的内容了. 可以和Precomputed Realtime GI同时存在.
Baked Resolution---Bounce效果的分辨率, 由于是Baked的, 所以不用像Realtime那样设置得很小.

Baked Padding---防止光照贴图的像素在物体之间溢出. 是物体之间而不是UV簇之间, Unity没有智能到可以自动帮我将一个物体的UV拆开来然后再合并.

Compressed---是否压缩光照贴图, 提高性能, 缩小容量, 但画质会降低.
AO -- 环境光遮蔽:是来描绘物体和物体相交或靠近的时候遮挡周围漫反射光线的效果,可以解决或改善漏光、飘和阴影不实等问题,解决或改善场景中缝隙、褶皱与墙角、角线以及细小物体等的表现不清晰问题,综合改善细节尤其是暗部阴影,增强空间的层次感、真实感,同时加强和改善画面明暗对比,增强画面的艺术性

Final Gather---开启后效果的确有很大的提升, 但是会让烘焙变慢, 成品必开.

Ray Count---与Final Gather有关. 该值越大效果越好. 烘焙也越慢. 经过仔细对比, 默认的1024和4096几乎没有区别, 但4096烘焙得出奇地慢. 事实上1024和128也几乎没有区别. 反正在我的小测试场景中是几乎没有任何区别.

General GI组的这些参数同时适用于实时GI以及烘焙GI.
Directional Mode -- 定向光照

Non-directional: 非定向光照图,使用单个光照贴图,存储有关表面发射多少光的信息,是纯粹的漫反射。 以这种方式点亮的物体将显得平坦。

Directional:定向光照图,存储有关照明环境的更多信息,而不向非定向光照图。 着色器可以使用关于入射光的额外数据来更好地计算出射光,这是材料在屏幕上的出现。 但是定向模式使用两倍于非定向模式的纹理内存,并具有稍高的阴影成本。

图中是静态物体+Bake光源. 可以看到如果选择了Directional, 会像Unity4一样对静态物体处理得很不好, 但如果选择了Directional Specular, 画质马上就提升了一个等级. 
不仅对于静态物体+Baked光源有提升, 对于静态物体+Realtime光源也有提升. 但是对于动态物体是没有提升的.

这两幅图是静态物体+动态光源. 可以说Directional Specular直接提升了静态物体对于直接光和间接光的效果.
但是这里有一个不得不重视的警告, 说Directional Specular对于SM2.0以及GLES2.0无法支持. 如果选择了Directional Specular, 就说明我不得不在我的PC游戏的最低配置上提升需求(当然了要是在八年前是要这么说的)! 这里说一下GLES(OpenGL ES)和SM(Shader Model). OpenGL ES针对手机平台, SM针对主机和PC平台. 从iPhone5s开始支持了OpenGL ES 3.0版本. 而对于SM版本来说, 目前还停留在SM2.0的显卡基本已经不存在了.

Indirect Intensity---间接强度,同时调节Bounce, 静态物体的自发光对其他物体的影响, 以及ambient lighting的强度.

Bounce Boost--反弹光照提升,提升物体的光照反弹的强度。

Default Parameters---设置一个LightmapParameters资源上去. 这么做是为了复用性.
Atlas Size---Atlas尺寸.

Fog 组合Other Settings组的内容都是Unity4就有了的. 新功能教学中不赘述.

下面来看一下Lighting窗口的Object页面:

Preserve UVs以及Auto UV Max Distance以及Auto UV Max Angle--- 说到这三个UV选项, 就不得不说一个新的知识点.
每个物体在Unity中最多会使用3个UV通道, UV1是贴图通道, UV2是光照贴图的通道, 而第三个UV是Unity自动生成的要用于Precomputed Realtime GI的UV通道.

在这里会看到区别, 其中最后两个, 使用了光照贴图的UV通道, 而前面五个使用了第三个UV,
而这三个参数正是用于控制如何生成这第三套UV的. 这三个选项自己测试一下就有结论了, 不再赘述. 说到这里, 如果你坚持看到这里还没有打开Unity手动进行测试并且记笔记的话, 我推荐你不要这样. 我不是专门写教程的我无法写得很好如果你不能一边测试一边看教程你说不定什么都学不到.

Important GI---在比较大的场景里面, Emission物体够大够亮. 但有些物体没有却没有被他照射到, 那么可以为他开启这个Important GI.

好了, 这里要说一下Emmision了, 在第一章里, 我们说到了两种自带PBS的Shader都有Emmision可以用,

重点: 要想Emmision影响其他物体, 那么Emmision物体必须是Static的. Realtime和Baked的区别在于, Realtime允许在游戏运行时更改Emmision颜色以及强度来影响整体GI, 当然了更改了Emmision颜色之后需要调用一个API, 这个API就是DynamicGI.UpdateMaterials, Unity官方文档说, 之所以没有做成自动刷新显示是因为这方面的刷新比较消耗性能, 而Unity正在想办法将这个操作的性能消耗减少并且将这个做成实时刷新的.

Advanced Parameters---允许单独的物体的LightParameter的设置覆盖Default Parameters.

下面说LightmapParameters,为了复用性, 将LightmapParameters做成了资源.

LightmapParameters资源可以赋予全局, 或者赋予单个物体来覆盖全局中的设置.

Precomputed Realtime GI这组的都是与Precomputed Realtime GI相关的.
Resolution---Realtime Resolution会乘以这个值来得出最终要使用于实时GI的Resolution.
Cluster Resolution---Too large clusters will result in light/shadow bleeding and too small clusters slow down the precompute. 数值越小效果越精确, 但是烘焙起来也越慢.

什么是Cluster? 看图

Irradiance Budget---数值越小效果越平滑. 但是更加消耗内存和少量的CPU.

Irradiance Quality---数值越大效果越好, 但是预计算越慢. 对游戏运行时的性能消耗无影响.

Backface Tolerance---数值越小, GI就越容易无视物体的背面. 同时, 两个完全贴合的物体的贴合部分也越容易被GI无视.

Modelling Tolerance---数值越小效果越好但是不能是0.

Edge Stitching---不能说完全消除但是可以缓解UV接缝的视觉纰漏.

Is Transparent---还记得刚才说过什么吗? LightmapParameters资源可以赋予全局, 或者赋予单个物体来覆盖全局中的设置. 没错, 为透明的物体赋予可以覆盖全局设置的LightParameters, 并且将这个LightParameters中的这个Is Transparent开启是更好的选择.

System Tag---和Is Transparent一样, 使用单独物体的LightParameter来确定这个物体被考虑进哪个System. 说到System, 可以理解为Precomputed Realtime GI的Atlas.

Baked GI这里的选项都是针对Baked GI的.

Blur Radius---光照贴图的模糊处理. 可用于将烘焙出来的阴影进行柔化处理.
Anti-aliasing Samples---数值越高, 烘焙出来的阴影的锯齿越少.
Direct Light Quality---数值越高烘焙效果越精确. 烘焙时间也会更长.

Baked AO这组是与AO有关的参数.
Quality---数值越高AO的质量越高.
Anti-aliasing Samples---AO抗锯齿.

Baked Tag---这个参数虽然和Baked AO组离的很近, 但是注意观察其实是有一定Space的, 因此他不属于AO组. 控制光照贴图的Atlas编号.

Over。。。

Unity5.x 灯光烘焙GI和LightingMap相关推荐

  1. [笔记]光照系统 实时GI、烘焙GI

    实时GI ●所谓"实时"是指在运行期间任意修改光源,而所有的变化可以立即更新. ●正式由于Unity 5 引入了行业领先的实时全局光照技术Enlighten系统,才可以在运行时产生 ...

  2. Unity灯光烘焙设置详解

    游戏场景中灯光照明的构成 现实生活中的光线是有反射.折射.衍射等特性的.对这些基本特性的模拟一直以来都是计算机图形图像学的重要研究方向. 在CG中,默认的照明方式都是不考虑这些光线特性的,因此出来的效 ...

  3. Unity灯光、烘焙小结(一)Unity灯光烘焙教程

    *****************Unity灯光烘焙教程************* https://space.bilibili.com/26063436/channel/detail?cid=867 ...

  4. 关于Unity 灯光烘焙模型UV有重叠的问题(UV Overlap)

    Hello!大家好,我是小洋. 1.最近我遇到了unity里烘焙的问题,错误提示灯光烘焙UV(UV2)有重叠问题.导致了烘焙的光影图是模糊和布满脏斑等缺陷的. 重叠部分为红色: 2.UV1是控制纹理贴 ...

  5. Unity效果——场景灯光烘焙流程效果

    Unity有强大渲染能力,渲染管线.可编程渲染管线.Shader.灯光.渲染模式.Ligting等.不是专业美术,只能从程序的眼中的效果进行制作场景效果. 最近有项目需要灯光烘焙效果,制作步骤是,模型 ...

  6. unity5.3 场景烘焙

    现在的项目是个PC的Unity项目,一下子从手游的运行时50 draw call变成动辄5K draw call,还真有点不适应.既然性能放开了,那么就要有相应的效果匹配,所以开了N个灯光进行对大场景 ...

  7. 【Unity】5.X灯光烘焙与4.X在实际应用中的区别和注意事项

    一. 先说说 Unity4.X 烘焙面板里常用的参数 Quality 烘焙质量一般会选择高 Bounces 反弹 这个值一般选 1,如果选 2,烘焙的时间会增长 50%左右,所以设置这个值要谨慎. S ...

  8. Unity实时GI与烘焙GI

    在Unity2019.3.8中,当我们新建一个场景时,默认的灯光设置为: 自带的主平行光:Realtime 灯光面板:Baked GI -> Light Mode为ShadowMask(不是Di ...

  9. unity 灯光烘焙对比

    对于基础光照知识不了解的可以点击 这里 测试一 无烘焙,实时光效果如下: 无GI 有GI 测试二: 实时GI+光照烘焙:                 烘焙结束后无贴图只有光照信息 ,帧率略有提升, ...

最新文章

  1. kettle连接不上es7_kettle8.2连接ElasticSearch7
  2. 游戏服务器的架构演进
  3. JavaScript中的document.cookie的使用
  4. python 构造函数继承_Python多重继承的异构构造器
  5. 泛型数组 c# 0104
  6. OSPF——虚链路详解(含配置命令)
  7. 铭飞MCMS内容管理系统完整开源版J2EE代码
  8. 机器学习中的数学——激活函数(一):Sigmoid函数
  9. AutoUpdater 实现一个简易的自动升级工具
  10. php导出word 模板,Laravel+phpword导出word
  11. 简单人物画像_超级简单人物素描画图片精选
  12. 网站变更服务器要重新备案吗,网站更换服务器要重新备案吗
  13. springMVC实现图片打包下载
  14. 【树链剖分】月下毛景树
  15. 商鞅(约公元前395年-公元前338年)
  16. 糅合了《魔兽》和《第二人生》优点的新式游戏闪亮登场!
  17. 怎么解决运行时输入错误,请重新输入以及专业无法输入的问题
  18. 自定義ListActivity(一)
  19. 是他们,让云原生落地千万家企业!
  20. 每天10道Crypto Day 2

热门文章

  1. 学习笔记-spo0lsv病毒分析
  2. 计算机英语教案模板,优秀全英文教案模板
  3. 王牌特工:黄金圈 经典例句
  4. 找不到sct文件解决方法:Could not open scatter descript
  5. Socket_Tcp加密文件传输系统
  6. 万级并发服务器内核调优总结
  7. web应用开发入门_Web应用程序监视入门
  8. 3D体验平台品牌应用——ENOVIA
  9. 硬盘柱面损坏怎么办_硬盘0柱面损坏数据恢复(老牌数据恢复)
  10. 3万字长文概述:通俗易懂告诉你什么是.NET?什么是.NET Framework?什么是.NET Core?