反射可以说是光学里最基本的物理现象,在现实世界里如果认真去感受这种现象除了奇妙外还有一丝诡异
目前绝大部分人以外的物种无法搞明白镜子里的东西就是自己,这种在一个表面后形成另一个空间的感受的确很独特。因此影视作品经常巧用反射做文章,比如霸王别姬里张国荣化妆时候通过镜子与“霸王”对话,比如银翼杀手2049里仿生人妹子单杀男主上司后显示器前扭曲的反射
还有赛博朋克视觉效果一定少不了的地上有水
同样出自2049
还有John Wick里也喜欢搞点夸张反射增加视觉冲击力
John Wick chapter2场景(疾速备战)
而且电影里基努里维斯的野马车身上的高光也漂亮至极
还有推荐一下江户川乱步写过一短篇小说《镜地狱》讲的一个科学家爱好凸面镜最后打造出一个封闭凸面镜仓走向自我灭亡的故事,故事非常猎奇
因此这次从镜面反射与高光反射两个方向讲一讲反射如何提升游戏画面表现力
镜面反射的内容也是显示在一个平面上,由于里面内容会随着镜头视角移动始终保持与反射面垂直,在人眼看来貌似里面还存在另一个空间。
由于“空间” 这个关键词,早期游戏实现镜像是通过在对面重新建设一个一模一样场景来实现,比如马里奥64和半条命里某些水面,但是这种方案相当于同时渲染两个场景,如果画面内容信息多的话对硬件资源占用过多,还没来得及普及就被淘汰了。
根据另一个关键词“人眼”,反射内容可以相当于光的信息从镜子里的空间沿直线传播到人眼,所以如果在镜像位置放置另一个摄像机,把他输出画面渲染到镜面所在位置,不就完成镜像效果了吗,因此这种方案是不少游戏洗手间镜子的反射方案,这样可以在尽可能占用少资源情况下完全不出戏的完成反射任务,甚至边边角角露出外面场景也一样渲染。但是一旦开放场景,又犯了跟上一个方案一样的问题。
说到封闭洗手间场景,有人就可能会奇怪同样是洗手间为啥2077里V照镜子还要单独按开关呢,因为很多第一人称游戏包括2077在游玩期间玩家是无头的,如果做成实时反射你会看到个无头战士,因此当玩家选择照镜子时会载入一个头给补上 顺便载入一些表情啥的,但是发售那段时间载入头会丢失头发模型 好多人都被剃头,甚至衣服都没了,🐮痣也一样丢失。一个特例就是DOOM永恒的光追反射,由于官方早就为照片模式玩家自拍用设置了可以尽量模拟玩家当前动作的人物模组,把这个套在游戏内就可以让人随时随地照镜子了
数毛社视频里提到,这种方案是尽量模拟,有时候还是会出现不统一的情况
除了水面和镜子需要反射,赛车游戏车辆烤漆表面也需要漂亮的动态反射点缀,所以急需一种既能骗过人眼又能有动态效果的反射技术
于是,cube map出现了,这种技术就是把需要反射效果的信息单独设计一个低模或者是在六个或四个方向上把景物拍摄成贴图让反射面获得这些信息,这个贴图可以贴在外表面实现物品自己对外的反射效果,也可以贴在内表面供场景内水面或者物品反射。
如果是赛车游戏赛道固定更好说了,直接把路边风景都制作成卷轴一样的贴图伴随赛道
提到赛车,那就拿大部分人最熟悉的赛车游戏举例了
首先车漆要足够闪眼
可以看到反射的内容都是简单的贴图和少量模型
这是上图反射场景实际的样子
这种方式只能展示制作组预设的内容,不能获得后来放置的其他物品反射信息 比如右边的粉色方块就无法反射
一定距离下骗过人眼是绰绰有余的
设置选项车辆反射 超高 高 中和关都是与cube map显示分辨率有关
马里奥赛车里为了不让有水的地面那么空白也用了预设cube map
很多其他类型游戏某些区域也喜欢用cube map制作反射效果
空间的角落
cube map除了实现反射效果,还能实现玩家武器随着场景明暗改变让武器表面有合适的光影变化,否则武器只能以场景总光源为信息的shadow map渲染
cube map由于需要制作组单独去根据当前场景渲染一个独特空间,对开发效率影响特别大,而且有时候为了省时间给这个场景每个水面都通用一个cube map,导致部分区域反射信息是有错误的
护栏反射信息全部丢失
顺便提一下四海兄弟重制版(决定版)里,几乎所有水面 车辆表面,制作组都利用cube map做反射,而且细节程度还比较高,所以有可能他们给整个失落天堂搞了个低模版本(这可是个纯线性游戏)
为了节省开发时间,需要一种简单的即时反射效果,这就是游戏里最最常见的屏幕空间反射(Screen Space Reflection)简称SSR
麻烦点讲叫把玩家摄像机视角内显示的景物跟需要反射的表面做一个联系,例如水面里某个像素点往镜像方向找景物,如果有景物信息就反射过来,如果没有可能就显示水面预设颜色或者天空
通俗来讲就是跟画画一样,画完实体场景后,根据实体场景描绘一个水面下镜像内容
所以重点就在screen身上,这种反射必须需要已经显示出来的内容,假如玩家低头避开周围景物,水面就丢失了反射信息,画家可以想象纸面画幅外的东西 但是可惜这种技术后台运算完全不知道外面是啥。
甚至玩家视角与视平线稍有角度,水面左右两边也会有个丢失视角的空白角落
山顶信息丢失 给剃头了
玩家视角内有山顶信息 就可以反射山顶信息
因此可以看到这种技术FOV大的游戏比如第三人称游戏收益还算比较高,但是第一人称游戏的话出现丢失信息的出戏场面就太常见了
但是有的制作组把SSR和cube map结合起来,拿cube map去补充SSR丢失信息 就组成了比较良好的反射效果
比如荒野大镖客,回去自己玩的时候,仔细看屏幕左右两侧的反射信息,当移动镜头时候边缘出反射是有快速微小变化的,这个变化就是cube map在补充SSR空白信息,但是这部分往往缺少远景信息和近处树木信息,而且分辨率也会稍微低一些
这个水池里的反射用SSR补充远景信息,cube map反射近景几个房子信息
在水面下还能反射
不得不说荒野大镖客2和美末二其实不是什么次世代游戏,是靠大量人力时间和资金充分利用已有所有技巧在本时代机能上不断打磨出次世代游戏大致图像表现的游戏,真的是从宏观到微观无微不至
这样好处是不需要强行让玩家提升硬件配置就可以享受更优秀的画面表现,但代价是开发者画时间去打磨
还有焦散效果 后面会提到
下面就到了RTX开端 光线追踪反射
光线追踪两种已经提到过了
光线追踪全局光照 (漫反射 间接光照)
光线追踪阴影(没啥好说的 塑造更精确更复杂阴影,还有根据距离光源距离塑造阴影边缘锐利与柔和程度,一般不数毛注意不到)
剩下一个就是光线追踪反射
前面一直提到一个词,信息,其实反射就是获得信息与显示信息的过程,根据之前介绍光追原理的内容可以想象,如果给一个表面设置好反射参数,摄像机射出的蝌蚪遇到这种表面就会发生完美反射,去捕捉反射后场景的像素信息,
可以用数毛社曾经用马里奥64加光追的视频更进一步介绍
这是有完整光追的样子 包括上述三种光追特效
这是关闭降噪采样效果后的样子
并且开光追游戏总会有噪点,这是为啥呢,因为蝌蚪寻找光源过程中,总会因为细小偏差错过光源,因而觉得这是属于暗处的,这种现象也叫萤火虫效应
通过增加射出蝌蚪数量可以缓解,但是消耗性能会增加
还一种改善方法是制作组人工去增大光源判定范围,但是即使这样遭遇大光源边缘还是会有丢失信息,还是会有噪点
于是各种降噪手段大部分还是基于平面图形的手法,例如Inside游戏开发者在开发者大会(GDC)上介绍的手法
(这个小游戏其实还用了光追模拟手电筒的光束)
24个采样光子 但是光束效果很假
3个采样光子加上噪点采样处理
白噪点太辣眼睛
白蓝噪点是啥什么的都是信号处理学的内容,比如以前天线信号电视没信号时候满屏雪花就是white noise
这本书的这个章节提到过多帧采样配合蓝噪点的效果处理SSR 具体是啥咱也不懂
6个光子采样点加上蓝噪点处理 还有渲染50%分辨率,再加上TAA(时间抗锯齿)多帧采样特性,就可以塑造丝滑柔和的效果 这里点名说一下卡普空,卡普空的降噪就一言难尽,高分辨率下效果还算可以,1080P下卡普空游戏的SSR还有光追的噪点真的显眼
接着马里奥64内容
看左上角,关闭了RT GI 人物身上绿色消失了(间接光照效果) 但是阴影还在 而且阴影噪点也依旧在
RT GI就是Ray Tracing Global Illumination简写
这说明光追这三项效果是独立的,互相之间可以单独开启关闭。
这期只说反射的话就得看第一个依据光追反射开发的游戏了 那就是《控制》(战地5开发完成后才加入了光追供英伟达演示效果 但是后续就没啥了甚至dlss还停在1.0,估计是合同到期了)
地上的水
对于光追反射,大部分人觉得就是地上有水,就是这层水大幅度增加了运算压力,但是反射到底可以增加多少效果呢
这种是最常见的地板反射,表现镜子一样擦的干净的地板
还有一种是大楼表面反射,这就得说漫威蜘蛛侠游戏里的大楼了
看战衣细节
战衣表面都有反射
除了平镜面还有曲面镜
然后是接上上期关于质感表现,金属质感是离不开反射的,其中最基本的反射就是靠曲面镜反射效果
除此之外还要有高光反射显得晶莹剔透,让人想摸
有了光追,很多细小的地方也可以有反射 而且不需要花费开发者太多时间去设置
SSR丢失信息部分是空白的
光追反射可以完全获得这些信息
SSR可能在人物轮廓做了反射信息偏移,导致了这种层层叠叠效果
光追反射就比较完美了
关于金属表面后的人像,其实美末二还用了一种叫什么什么胶囊阴影的东西,用低模人体反射在金属内部,这种技术貌似是他们自己搞出来的 目前也没有正式命名
仔细看准星后是有反射人形的
移开主角后还是有这个胶囊阴影,说明不是SSR那么简单 他们是做了个简易人形放在后面,而且美末二作为潜入为主的游戏经常需要贴在车辆还有各种金属表面潜行,有个简单动态反射确实增色不少。这种效果利用在了游戏几乎所有金属表面 我记得厕所里的一些金属盒子都能有细小效果
回到光追反射对视觉影响
游戏中各种阴间动画片都是用老式CRT显示器,这种显示器的表面一般都是容易反光的玻璃材质 所以游戏中也能看到反射屋内的场景
还有个人觉得很有趣的一个场景
这是热线室,局长跟阴间通话的地方 这种正常游戏画面 显得挺封闭跟吃牢饭一样
有了反射,这应该才是制作组当初想传达给玩家的样子,加上当时渲染的气氛增加了不少诡异感
左侧有一层门框玻璃 右侧是打通的
根据上图 也反映出一个问题,光追不是完美的光学物理引擎,不能完全模拟光的所有性质
目前光追反射只能反射一次,因为简单的加一个二次反射就可能造成优化灾难,比如恰好这种房间 有二次反射后场景面积会扩大一圈 就不好控制运行稳定性了
而且也不能透过玻璃再次反射,就是说只能遇到一个玻璃表面反射蝌蚪就反射走了,他们无法得知玻璃后面信息
而且也不能实现折射,更不能实现折射后再次作为光源(其实玻璃窗照亮室内是一种折射光照明,因此游戏内玻璃大部分都是假玻璃),与萤火虫效应有关
如果折射都不能实现 就无法实现焦散了 焦散是一种漫折射,是由于一次次折射造成的投影的偏移错位
漫威蜘蛛侠重制版过场演出中的焦散实际上是美术做的light map 不管正向光追还是逆向光追都很难模拟
银翼杀手2049特别喜欢这种特效
除了光的粒子性,光的波动性更无法实现,所以想拿光追做牛顿环和劈尖实验是不可能的,什么半波损失都是光追无法做到的。包括干涉、衍射这些波动光学特性倒是游戏用不到
关于光追反射就说这些,剩下简单说一下高光反射
高光是光源在物体表面反射的成像,这种效果也是随人的移动而改变的,它不改变物体固有明暗关系,就好比夜晚经过路边路灯下停放的一辆汽车,高光虽然会在你经过他的过程中不断改变,有种流光溢彩的感觉,明暗关系最亮还是车顶 最暗还是车底,中间调还是车侧面,但是高光可能会出现在车顶、侧面
高光也是很多绘画的点睛之笔甚至称之为灵魂,游戏当然也得用上增加表现力。这种效果传统游戏渲染模式还是比较容易得知信息的,只是一般是一个场景总光源信息
高光反射有那些应用呢,首先是车辆
车辆表面材质也许反射场景信息不明显,但是一定要有高光,才符合人直觉感受
其次是表现人物脸部,对马岛之魂的过场包括实际游玩时候,有时候感觉人物面部质感还有盔甲立体感好棒 有时候感觉跟纸片人一样好假,为啥呢
因为主要剧情的过场演出,打光都迎光面,高光可以出现在盔甲还有人物正面
由于高光的存在 可以增加对比度还能增加体积感,还有“高级感”,没有高光的时间比如下午时候或者是在树林里 那会感觉主角就没有立体感,玩过对马岛的应该深有体会
说到打光,生化危机2重制版包括3重制版,过场演出时候每一个镜头都单独找光源打光,切镜头后再给主要角色打光,这样就显得角色脸部特别有立体感
切自由视角看过场演出时候跟歌剧一样灯光换来换去
cod7黑色行动一代 小时候就觉得这段雷泽诺夫对话时候人物脸部做的特别真实 其实高光功劳很大
关于对比度,可能还开坑一期讲讲显示设备对画面影响
回到高光,高光还可以用在植物上,增加叶片质感和层次感
再次偷偷用机核偷来的DOOM永恒截图 太帅了
下次抓到蝉就可以仔细观察观察它身上的高光了,真的很漂亮
高光也不是啥都好,做的多了会显得油腻,很多游戏塑料质感要么是没有高光 ,要么就是高光过多而且明亮度没调好
死亡搁浅海报高级感的来源。打光与高光
COD17里列宁雕像 上面高光明暗就控制的很好,既表现了铜像的质感还不会特别油腻
水彩里高光重要性更不用说,属于高阶技巧
作者 水彩咖啡厅-Eric 曾在343担任场景美术,这次光环无限b测蓝绿色调那个图后面雪山就是他负责的
至此,加上前两期内容,对于目前游戏大部分各种实现良好视觉表现力的手法就说个遍了,臭打游戏看技术原理可能感觉无聊,所以拿了很多比较出名常见的游戏截图来举例子,下次玩其他游戏时候仔细观察画面细节时候大约就能明白制作组用了啥技巧,还有设置画面选项时候也更明晰到底开和关了那些选项对游戏有什么影响(卡普空游戏和动视这方面就做的很好 给你非常直观的开关对比)
还有一点就是经常有人说只求画面没啥意思 游戏还是在于游玩
对于这种论点,有人在游戏里获得游玩乐趣,有人在游戏里不光获得游玩乐趣还能满足审美乐趣,这其实不冲突,谁玩荒野大镖客做任务后没骑马闲逛过呢,缺了闲逛环节,还能遇到路上的随机事件吗,还能探索各种收集要素吗,缺了闲逛还能叫荒野大镖客吗。这种就属于景色就已经融入玩法一部分了,变成了玩家探索世界的动力。只能说某些厂商过分在画面上花时间,缺少对游玩部分打磨导致游戏评价褒贬不一