这节理论解释1号 大范围静动模式的点光源充当大范围的GI灯, 2号 小范围无阴影投射的动态点光源用于处理交互区域的gi灯 这两个灯存在的必要性:

以及 如何优化场景:

在关闭lumen的情况下观察1号2号的情况,并在world setting中查看静态光的相关参数设置:



调节为10或者5的话:
Skylight也有在world setting的反弹数值:

其他参数不一一记录。
随后我们烘焙灯光看看效果:


再次调节数值改善效果:


为了解决阴影交互就需要在近处添加动态的聚光灯:

World setting中保存的light mass 光照贴图,也保存了烘焙的灯光贴图:

在这里可以更改灯光贴图的纹理:

关于烘焙使用的lightmass important valume 后体积处理:
需要包裹被烘焙的范围,包括静动混合灯

烘焙的时候不要忘了world setting的数值
理论5


游戏关卡中的灯光设计:

灯光的方向很重要:

先尝试烘焙大范围GI灯具点光源(1号)看看效果:

因为L1阶段是布置灯具等与灯光有关的道具,而图中是布置GI,属于L2阶段:

烘焙后我们需要在后体积盒子中开启环境光遮蔽功能:

所以在l2的GI阶段我们需要关注 间接光数值的参数大小以及 环境光遮蔽的参数:


确保环境光遮蔽的参数合适:
查看环境光效果:



环境光遮蔽的数值太大的话也有弊端,会间接使得我们丢失部分灯光细节:


在后期盒子中我们还可以第二次间接的全局调整间接光的整体参数:


这意味着在后期盒子中调节间接光的亮度参数,可以不经过烘焙直接启动效果,这意味着我们可以在这个地方进一步优化GI(一号)的间接光烘焙的灯光贴图,也就是light mass。


关于环境光遮蔽功能在调节的时候失效并且一片白的问题解决:

视图中查看light mass:



我们可以更改单个物体的light mass 参数的分辨率重写,也可以在静态网格体编辑窗口中针对light mass的参数进行单独修改,这样的操作可以使得该物体在gi或者其他灯光烘焙的时候具有更好的灯光表现效果:

过低质量的light mass设置参数会在烘焙的时候产生多余的错误伪影效果,这一点需要尤为注意!!

当然,更改成更高精度分辨率的light mass贴图质量的话,也意味着这需要更高的计算机成本去计算:

点击物体后右键 点击这个可以快速让游玩npc重生在这个点位:


而近处的交互区域动态阴影捕捉就是L3的步骤,我们使用2号等以及3号动态聚光灯(可选)捕捉近处的动态效果:


观察成本:

已经烘焙的灯光贴图是不参与计算机成本开销的,只要含有动态的灯光产生的影响才参与计算:








如果要添加3号灯也就是聚光灯作为阴影投射的光源,添加一个即可:


或者1号灯使用静动混合模式。
注意阴影投射时候的阴影软边的合理性:

另外,环境光的一些fake light 和fill light都需要额外去烘焙或者根据相同的理论:





为此我们可以使用light cookie 也就是light function来制作环境光的额外补充,用cookie来塑造fake,fill light灯的影子效果,灯的范围:



shape language 的介绍: 塑造语言




同样的,光线也要参与到故事叙述的一部分之中:

游戏和电影的灯光语言是不一样的,电影中的灯光语言更加的自由和艺术化,而游戏往往需要遵循项目指标:

可以添加矩形灯,点灯,聚光灯:

但是需要注意的一点是,场景物体的语言形状是什么,我们的灯光语言形状也可以相对于的进行匹配:



这一方面的解析很有趣,在视觉上物体形状与灯光形状的匹配可以大程度上在视觉中达成和谐的画面等优点:



作为灯光,面对场景的灯光思路第一步除了指标之外就是观察场景主要的形状语言是什么类型的:




引导性的分散注意力问题,有些地方不可以放置杂乱的灯光:


添加远处目的地的灯具来引导玩家前往:

而在室内包括目的地狭窄区域的引导区域,不同的亮度阶差也代表着不同的引导目标:
而这个灯光的亮度值是有限制的:


在灯光颜色的场景关卡选择中,除非特别指定,大部分灯光的颜色基底都要保持自然颜色,不要过蓝过绿过红或什么颜色,如果要表现整体对某颜色的倾向,当然首选在后期盒子中进行tint颜色调整:


那么首要的就是创作我们的灯具与灯光蓝图,保持整体的一致性再做特殊区域的调整,然后是整体的调整:


关于场景中多个大主光的亮度取舍以及灯光信息带来的指引信息:

2号等如果充当功能性区域的话,灯光的亮度应该大于1和2号的区域灯,而1和2灯的亮度稍微低一些并且充当路径灯的指引作用。
那么周围的light props灯具的灯光数值亮度也是一样的要比主灯的亮度低的:




同样的,fill fake light 附带light function纹理灯光:

关于利用灯光的反弹bounce light 附加信息使得场景物体在摄像机沟通上的层次分明规则:

所以:





通过添加额外的灯光bounce表现,不仅可以使得场景层次分明,而且可以更好的保存我们的场景纹理细节以及视觉表现效果:



那么在这一点还有一个需要注意的就是GI灯可以烘焙,但是反射类的灯光材质表现是无法烘焙的:

那么为什么不直接在动态点灯光上扩大灯源的大小呢?因为之前我们提到过,动态点灯的成本是很大的,而且项目要求中动态灯的重叠数量是有限制的,而动态聚光灯的距离可调,而且方向是单一的,开销比大范围的扩大动态点光 来的好:



关于场景中灯光的数量问题,一个场景中可以存在多少个灯光?
如果场景中的动态灯光重叠在complexity density viewer中的开销计算数量小于项目限制的话,理论上加上烘焙以及静动混合灯光数量,我们可以拥有很多个:


但是GI灯光应该占据场景灯光的七成左右,静态,静动,动态灯光的比例我们还是需要考虑的:




灯光的数量以及表现方向必须要于资产的细节量级相匹配,不然就丢失了太多的资产细节表现:




同样的,在内部灯光场景中,我们考虑的事情也是一样的:


而在游戏引擎中,也分为关卡灯光和过场动画的影视灯光,通常来说,关卡灯光是玩家游玩的区域布置的灯光,而过场动画的灯光往往是以影视灯光的思路铺设,而过场灯光也通常是触发的机制来启动的,这意味着只有当玩家触碰到交互区域或者开启了特定的关联事件的时候,过场灯光才会以序列器的形式出现在过场区域中,当玩家离开这个区域后,这个区域的灯光又会退回到关卡灯光的形式,仅仅保留基本的123号灯光流程。





再次强调!


如果要检查帧数的话,要按f11开启全屏进行帧数检查,预览窗口的分辨率小于全屏,所以会不准确:






不要忘记world setting中关于 light mass 的烘焙纹理的质量数值:


通道灯影响:

Hdr的开销问题:

Light mass的分辨率:

理论6


反弹数值的具象化表现:




间接光平滑度参数:

调节这个参数可以优化GI造成的伪影问题:

但是提高这个参数会抹平材质的纹理细节:



World setting 的environment color 选项:

World setting的环境遮蔽选项:

这里之所以提到World setting的环境遮蔽功能而是为了于后期盒子中的环境光遮蔽功能做区分,因为工程在打包的时候,只有World setting中的环境光遮蔽功能是可以打包的,后期盒子的就不行。但是一般来说World setting的 环境遮蔽是不使用的
World setting的环境光遮蔽纹理:

World setting的 compress light maps,这个很重要:




这个功能如果我们不打算打包工程的话,可以不开启这个功能:




特别注意:如果我们在调节完world setting的相关一系列设定后,我们的物体的纹理阴影和一些GI问题还是存在的话,就需要查看 在world setting中关于light mass 的分辨率的数值大小以确定其足够承载我们的参数调整:

