大多数Lookdev流程都是在谈论如何建立标准化资产校验的光照环境,鲜有人讨论局内光照环境,即玩家体验的游戏场景灯光应该如何可量化标准地打亮,如何建立能够成为规范的灯光艺术指导。
由于国内的游戏灯光发展不平衡,很少有项目需要专业的关卡内环境灯光师,也就没有良好的培养体系。所以也常年在混乱的操作下,一打开关卡几百盏灯是常态,性能消耗极高的情况下,效果却也不尽人意,性价比极低,那么如何才是一个好的开始,那么便是建立一个Bible级的灯光分级规范。
理论知识(可不看)
[1]什么是Lookdev?
Lookdev:全称Look Development,光照开发。常见的Lookdev分为两种,第一种是用于校验资产的标准光照环境(General),可以基于以下文档进行设置。
Updated Lighting in Templates[1]
另一种则是局内环境,服务于游戏表现,根据项目风格而定。局内环境的Lookdev的光照目标风格大多不同,但是基本围绕寻找项目合适的光比来进行。
[2]什么是色彩分级?
色彩分级:也称为颜色校正,Color Grading。用于变更或增强场景的总体照明颜色。可由美术调整包括白平衡、全局以及阴影,中调,高光的饱和度、对比度等参数。
需要注意的是,色彩分级的调整是在线性空间内调整,这意味着所有颜色都是先捕捉调整,再进行色调映射。因为随着HDR显示器的出现,在处理前保持颜色原有的色彩变得非常重要。这样可确保正确显示颜色。
[3]什么是色调映射?
色调映射:即引擎中的【电影】参数,是指Tonemapping。
光本身是电磁波能量,不同的波长被人眼观察为不同的颜色。而人眼对于不同颜色的感知是不同的,人眼对蓝色的敏感度最低,对绿色最敏感,所以光谱也不是正三角(蓝色部分是最小的)。

早期电子显示屏只能显示很少的颜色,即sRGB/Rec色域。

假设直接进行裁剪,会造成很多颜色损失,所以影视和游戏行业使用由ACES胶片公司制定的的标准Tonemapping,通过色调映射的方式将宽色域(very wide gamut)的色彩通过函数映射至sRGB屏幕显示,这基本就是引擎在色调映射中做的事。

具体参数的含义可以参考:虚幻引擎颜色分级和胶片色调映射器 | 虚幻引擎 5.5 文档 | Epic Developer Community[2]
[4]什么是光比?
光比,Light Ratio。本身是摄影参数,指照明环境下被摄物暗面与亮面的受光比例。对于相机来说,ISO、光圈大小、快门速度、曝光度等都会影响相机成像,在正午也能拍出很暗的照片。同样的,在引擎内也同样会由于曝光等参数的不同将会导致画面的明暗差异不同,光照环境是否符合人眼不能通过具体的数值来定义,而应该在固定曝光下通过测量环境的亮暗比来进行判断。

[5]合理的光比是多少?
在2019年的GDC上,《漫威蜘蛛侠》开发团队Insomniac Games(即“失眠组”)分享了他们的Lookdev流程,通过专业相机以及灰卡进行纽约街头的光照环境测量实验,我们可以直接使用其结果。

最终的读数是白天正午时光比约为16:1,而日落时光比为2.5:1。

实际上16:1会有一些问题,但是仍然是很好的开始。由于玩家扮演蜘蛛侠会在楼宇之间高速移动,明暗不断变化差距过大会让事情变得很糟,最终平衡使用了10:1的光比。
感兴趣可自行学习:
https://www.youtube.com/watch\?v=RgUaPmDJ2r4[3]
[6]为什么要用像素检视器?
讨论Tonemapping主要是在讨论色彩范围,而非亮度/明度范围。亮度/明度范围使用的是gamma校正,现实世界中的颜色是线性的,人眼也是一种生物的摄影机,人对自然界的感知,以非线性的模式进行变化。该现象通常也被更准确地称呼为史蒂文斯幂定律(Stevens's power law)。
据说因为人类远古时期,更多在黑暗中生存,所以进化过程中对偏暗色的敏感度更高,而亮的部分感到刺眼。从结果上来看,就导致了人对于灰度的认识是非线性的,很有可能你认为“恰到好处”的灰色,在物理意义上,并没有达到一半人眼最大可感知光强度。

如果是按照线性采集光线,对于人眼识别的灰度,在暗部的采样数量明显不够。所以在用相机以及显示设备时,人们将线性的画面,通过gamma映射校正到人眼觉得舒服的亮度,也就是我们常见的gamma2.2。
所以如果通过Ps或者windows Powertoys进行屏幕截取时的采样,得到的数值是伽马校正之后的屏幕亮度,而非真正的线性空间的光比亮度,所以会发现根本达不到16:1。


[7]为什么用十八度灰?
在摄影学当中我们经常说的十八度灰,因为史蒂文斯幂定律,人眼感知到的中灰度,其实在灰卡上是18%左右。
在你的项目引擎中进行局内光照环境Lookdev
设定基准环境
曝光
为了我们的相机不受曝光补偿(人眼自适应)影响,我们需要关闭后处理体积中的【曝光补偿】

可以通过开关游戏设置勾选来检查曝光补偿是否仍在生效,如果开关游戏设置移动镜头,曝光不会出现变化则为成功关闭。

色彩分级[2]
由于局内环境的Lookdev是对最终玩家观察到的视觉效果负责,如果在光照开发基准阶段就使用调色,灯光本身的参数就会受到影响,所以需要将所有的色彩分级参数关闭,除非是已经确定的作为项目风格标准的调色。
环境的颜色和光照的颜色都会影响明度值,为避免颜色干扰,所以将全局饱和度调为0。

色调映射[3]
假设项目调整了色调映射(电影)的参数,需要全部保留,色调映射是项目规范级别的,整体游戏都要保持一致。

显示设置
将所有显示标记重置为默认。

光照组件
确保光照组件都存在并设置完毕。

测量并设定光比[4]
放置灰球
根据GDC2019的分享,需要在引擎中复原在现实中测量的方式,使用18度灰[7](灰卡)来进行测量。可以使用专门的Lookdev测量的模型,但我们仅仅只需要灰球来测量光比,并不需要校色和其他材质表现的校正,所以也可以只使用灰球。将灰球各放置一个在直射光下以及阴影中,并进行烘培。

灰球参数来源:\[官方培训\]21-UE中LookDev环境创建 | Epic 李文磊\(官方字幕\)\_哔哩哔哩\_bilibili[4]
像素检视器Pixel Inspector读数
烘培完毕后,通过引擎自带工具“像素检视器[6]”进行读数。

开启检查,鼠标摸取灰球正对太阳光的最亮点位置,进行读数。

在阴影处同样选取最亮处,也可以选择灰球阴影下的灰板读数,是一致的。
调整合理光比[5]
物理的现实光比白天正午超过16:1,GDC2019《漫威蜘蛛侠》分享使用的光比是10:1,如果你是TA请跟美术沟通游戏的风格主要参考哪个数字娱乐作品,以及游戏是否开启相机自适应曝光。例如,针对参考游戏考量《守望先锋》和《瓦洛兰特》的视觉表现,最终Lookdev光比测试在7:1左右表现较为符合预期。


此外可以继续调整后处理相关的色彩分级参数,比如对比度等参数,当然也会影响到光比。
*注意!!光源颜色也会影响到光强度,例如暖光相比于白炽灯光线更显得柔和,即使在同样的光强下。

其他补充
像素检视器
虚幻官方技术分享中,李文磊使用的是场景颜色,Final Color是Tonemapping之后再sRGB to Linear的,存在一点误差,不过局内环境lookdev本身就面向最终效果,可以接受。
在UE5中新增了包括后处理前场景颜色、色调映射前亮度等参数,更好用。

参考资料
Updated Lighting in Templates: https://www.unrealengine.com/en-US/blog/updated-lighting-in-templates%3FsessionInvalidated%3Dtrue%26lang%3Den-US
[2]虚幻引擎颜色分级和胶片色调映射器 | 虚幻引擎 5.5 文档 | Epic Developer Community: https://dev.epicgames.com/documentation/zh-cn/unreal-engine/color-grading-and-the-filmic-tonemapper-in-unreal-engine
[3]https://www.youtube.com/watch?v=RgUaPmDJ2r4: https://www.youtube.com/watch%3Fv%3DRgUaPmDJ2r4
[4][官方培训]21-UE中LookDev环境创建 | Epic 李文磊(官方字幕)_哔哩哔哩_bilibili: https://www.bilibili.com/video/BV1Gx4y1V7Cw/%3Fspm_id_from%3D333.337.search-card.all.click%26vd_source%3D46d22ddbfad9d6930d1195407b8567f7
延伸阅读
米哈游 ZZZ 绝区零 渲染细节新发现 网友发现《黑神话:悟空》误将钢筋扫描至游戏中,如何评价游戏场景实景扫描这样的做法?是怎么办到的?
收藏转发,GPU、CPU、内存等150+游戏开发性能分析优化干货合集! Unity3D游戏开发中100+效果的实现和源码大全 - 收藏起来肯定用得着 非广告!6年老号福利,描边、景深、泛光、投影等60+游戏后处理效果实现合集!
🧠 大脑缓存清理区 · 防止栈溢出
矩阵、索引、渲染管线看多了容易宕机,来几个小站点释放下内存:
🎮 一句话生成游戏(yijuhuayouxi.com) — 一句话出demo,体验当策划的快乐 🧪 游戏圈本命测(benmingce.com) — 测测你是游戏圈里的NPC还是隐藏Boss ✍️ 古法编程(artisanalcoding.com) — 纯手工无AI,瞻仰下前辈们的手搓神力 🪦 游戏墓地(youximudi.com) — 给退役的游戏项目立块碑 🍜 饭永远不来(foodnevercomes.cn) — 零成本云干饭,不用等外卖也能解馋
鸣谢:感谢作者的授权转载,欢迎大家投稿,一起分享交流游戏开发技术。
作者:枕鹤
原文:https://zhuanlan.zhihu.com/p/31131802024
关注【游戏开发技术教程】
游戏开发技术、技巧、教程和资源,答疑解惑,内推面试

夜雨聆风