现如今提到“次世代”的游戏画面和美术,不少人会将其和更加细腻的模型面数和贴图精度联系起来,而暂时不会期待有什么革命性的图形技术再次出现。毕竟在画面表现的探索上,尤其是“写实”这个风格的赛道上,已有的美术制作管线已经在方法上达到了以假乱真的边界。当虚幻5亮相时,怎样增强美术的光影细节和软硬件的优化,已经是次世代游戏美术的主要进攻方向。
而在几年前(2014 ~ 2017左右),游戏的美术制作曾经出现一次历史性的突破。这个突破就是PBR(物理渲染)的出现。例如,生化危机:启示录2(2015)和生化危机7(2017)的画面质感就有真正跨时代的区别。
不知道玩家们有没有印象,那几年间,游戏画面陡然间写实了很多,游戏中的材料质感也向着现实材质跨了一大步。这种变革,就是源自于PBR技术的普及。
我记得当时有一些文章提到,《王者荣耀》最近在研究新的图形技术,将要让游戏画面焕然一新。文章前摇了很久,才提到他们用了PBR技术,并且将这个技术讲得极其神秘和玄妙……
那么,PBR是什么呢?PBR全称 Physically Based Rendering(基于物理渲染),可以模拟现实中的光线的物理性以及与各材质的交互作用。早在2012年,迪士尼在SIGGRAPH 2012上就提出了著名的“迪士尼原则的BRDF(Disney Principled BRDF)”,开始应用PBR技术。
PBR采用基于物理精确公式的算法来重现真实世界中的材质,从而生成一致性的逼真环境。
在PBR出现之前,所有游戏美术对于光线的反射,要么只是用纹理来模拟,要么只是根据灯光颜色进行一些基本的回馈。而PBR的最大特点,就是可以根据材质,对于环境贴图进行真实的反射,尤其是金属材质,这一点的表现尤为重要。
值得注意的是,PBR技术刚刚应用在游戏行业时,对于环境的反射主要还是一张全景的环境贴图,也就是说,不管周围有什么即时环境的变化,反射的内容仍然是那一张全景图,只不过会根据角度不同而反射出全景图的某一个位置。
当然,当时的“光栅”技术会粗糙地反射一部分相近的图像,而真正可以大量即时地反射周边画面的技术,是之后几年才慢慢成熟的“光线追踪”技术。
那么,这种物理反射的实现原理是什么呢?
光线作为一种电磁波,在照射到物体表面后,会因其材料和表面情况,反射出不同的效果。一般来说,漫反射(Diffuse)会呈现出多方向并且缺乏规律的光线反射,而高光(Specular)则是特殊材料会体现出的有明显规律并且反射角度较少的特性。如果材料是导体,那么它的反射就会有我们平常所说的“金属光泽”;如果材料是非导体,那么就会呈现出“塑料感”或者类似的感觉。
在“模拟真实”这个基石下,一个关键的原则便是“能量守恒”。这意味着表面反射的光线总量不能超过其吸收的的光线总量。
在 PBR 中,有几种类型的贴图可帮助创建逼真且具有视觉冲击力的纹理:
反照率(引用的原文是翻译为这个词,但是Diffuse在美术制作中更多是称作“漫反射”或者“基础色”): 代表材质的基础颜色,影响其整体外观和视觉写实度。
法线:模拟表面细节与不规则性,增强渲染场景细节层次。
粗糙度:粗糙度贴图可控制反射的锐利度,有助于描绘材质表面。
金属度:决定了材质的金属特性,影响其反射率和外观。
高光:根据光线方向和视角描述反射率的变化,有助于渲染场景的写实度。
高度图(Height):用于对网格进行形变,常用于地形或悬崖等表面。
不透明度:确定材质的透明度,影响其视觉外观。
环境光遮蔽(AO):影响材质的阴影效果,增加渲染视觉效果的深度。
折射:影响光线穿过材质的方式,从而增强材质的视觉效果。
自发光(Emissive):控制材质的光线发射,影响其视觉效果。
需要注意的是,并不是每一个PBR材质都会用到这么多种类的贴图。除了流程耗时以外,通道越多,对系统的负担也会越高。尤其是金属度(Metallic)和高光(Specular)这两个贴图很多时候是不会共用的,基本上使用一个就行了。
(同时,本文的重点是Specular和Metallic在PBR贴图中应用的历史,其他的贴图类型并不会花太多篇幅提及。)
由于上文提到的原因,基于PBR的贴图制作,产生了两种制作方法。在当时的美术制作流程中,这两种方法在主流商业游戏中的使用量平分秋色。这就是以Specular(高光)贴图和Metallic(金属度)贴图为主要区分的制作思路。
而最终,Specular贴图惨败于Metallic,因为它为当时的美术团体带来了挥之不去的梦魇……
高光(Specular)贴图代表的含义,基本上就是这个表面所能反射出的光线能量。当你给一个3D物体添加Specular时,如果Specular的某个位置是黑色,那这里就没有反射;如果某个位置是白色,那么这里就有极其强烈的反射效果;如果一个位置是灰色的Specular,那么这里就会有一个中等的反射度。
听起来好像不难理解吧?但是,这中间就有一些不好定义的部分。最基础的实现效果上,在其他参数相同时,你会发现,随着Specular值的提升,这个物体的表面好像从非金属慢慢变成了金属。这显然是不符合现实的,一个物体是不可能平缓地游走于这两种状态之间的。然后,在制作方法层面,这个贴图的难点更多。
第一,Specular的值和现实材质并没有统一的度量值。比如同样是石材,砖头、水泥、大理石、混凝土等等,各自该设置多强的Specular呢?当时有很多有经验的美术很快通过自己的勤奋与观察,迅速找到了自己的一套参数,来模拟出不同的材质。但是你猜怎么着?同样的Specular值,不同的游戏引擎,不同的项目,出来的效果都不同;甚至不同的美术总监,不同的美术人员,都会有自身感受的差异。这就导致很多美术每次做新物件,都会花很多时间在材质参数的确定上。
而这还只是开始。
第二,想做出写实的效果,有时还要进行一些弯弯绕绕的理解。当时我正在参与Arkane工作室的游戏《掠食》的制作,这个项目就使用了Specular流程:金属材质要把基础的漫反射颜色(Diffuse)做成黑色,而金属本身的材质要体现在Specular贴图上。比如,你要做一个白色陶瓷品,但是它的一部分是黄铜,那么,在主体部分,基础色就是白色,Specular是深灰色;而在黄铜部分,基础色是黑色,Specular则是黄色。这还只是一个最简单的例子,在实际制作中,还需要考虑材料是否上漆、是否镀层、是否有磨损、划痕、机油、脏迹、指纹、甚至材料本身是否是拉丝或者车漆等等有花纹的表面。每一种情况都要考虑到Specular的值,都要看看是否会产生不真实的反光。
还不算完!
第三,Specular贴图有个特点,就是当你加入Glossiness(光滑度)贴图时,需要更加小心。记得之前提到过的那个PBR概念吗?表面反射的光线总量不能超过其吸收的的光线总量。(至于Glossiness贴图,不在本文的讨论范围,只需要知道这个贴图也是物理渲染必不可少的一环,并且原理和Specular类似。)而使用Specular时,同一个位置,与Glossiness的亮度值加起来是不能超过1的,不然最终效果就会不真实(黑为0,白为1,中间的灰度就是从0到1的渐变值。简单举例就是,Glossiness如果用了亮灰色,那么Specular就只能用暗色或者黑色)。
当时,提到“次世代”和“PBR”时,往往各种技术理论和专业术语就纷纷出现。为了清楚地理解这一套制作方式背后的原理,甚至还需要参考物理学。同时,我亲眼看到过很多美术人员被各种专有名词折磨得痛苦不堪。想象一下,你本是一个资深美术。以前,你在做好模型后,只需要按照现实情况,把写实的颜色绘制在模型上就行了(虽然中间出现了法线贴图Normal,但是那个没有理解上的难点)。而现在,你需要先确认引擎,参考这个引擎的Specular使用方式,然后总监沟通好主要材质的Specular参数,然后再制作的时候还要时不时想到Glossiness和正在制作的Specular加起来会不会太亮……
不光是制作,连检查流程也是要人老命。以至于当时工作室还准备了PBR理论的教学和考试;而新人来到工作室以后的一个重要考核指标,就是“PBR理解是否正确”。
在经历过这些磨难后,Metallic贴图终于出现了。
Metallic 贴图相对于Specular有什么特点呢?它最大的特点就是:好使。对于一个不了解技术的纯3D美术来说,Metallic简直就是救世主。根据刚才提到的Specular的使用难点,我们对照地看一下Metallic的使用方式。
首先,它很好理解。在这个贴图中,白色就是金属,黑色是非金属,就这么一个简单的区别。不同引擎的不同效果?这个层面上不用考虑。大多数时候,只要用黑白来区分金属与非金属就行了。(我知道有特殊情况下这个贴图会用到灰色,但是已经简单很多了。)
然后,它不必考虑和其他贴图的互相影响。这个材质看起来是什么颜色,和Metallic无关。颜色你就去颜色贴图上加就行了,Metallic只管定义是不是金属。
最后,Glossiness?那更是关我鸟事,自己玩自己的部分就行了。美术不再需要实时提醒自己光线的吸收量和反射量的平衡,光滑与否和金属与否的定义可以根据自己的经验去分别判断。
当美术们做了一次Metallic流程后,就像是高考过后的学生,根本不想回到之前那个拼命学习的状态,脑中只有一个虔诚的祈祷:拜托各位都来使用Metallic贴图吧!果然,没过几年,主流游戏的美术管线全都用上了Metallic流程。在《掠食》这个项目之后不久,我参与的Capcom游戏《鬼泣5》、以及Sandlot的《地球防卫军5》中,就开始全面应用Metallic流程了。
当然,在Metallic美术管线刚刚出现的一两年间,Specular仍然应用于很多主流项目中。毕竟已经养成的制作惯性不是说改就能立刻改过来的,尤其是手游,真正让Metallic流程的普及仍然花费了很长时间。
虽然Metallic对于Specular的替代是大势所趋,但直至今日,或许Specular贴图仍然有自身的一些优点,又或者是其他原因,现在的主流引擎中仍然为它留下了使用接口。
但是,工具是需要贴合使用者的。方便、易用才是最好的宣传。美术人员不是技术人员,微波炉再先进,你让我用微波炉做雪糕,这不是为难我吗?
以上只是我对那个年代的感慨。可以看到,任何一种革命性的技术和方法出现后,都会经历一段时间的混沌期。虽然当时感到了一定程度的痛苦和迷茫,但是事后回忆,也有一定的乐趣存在。这次不是纯粹的技术分享,而是回忆一下当时的业内情况。作为这一段乱世的参与者,我发现中文网络环境中没有什么文章将这一段历史科普给大家,这一点颇为遗憾……所以,我会尽量以人人都能看得懂的语言说明当时发生了什么。不知道下一次的图形革命又会是什么?我听说虚幻5的多边形支持数已经到达了亿级,或许很多贴图和制作流程会被淘汰掉。
不过,现在我已经彻底来到了独立游戏这个赛道,很多新技术来到我身边的那一天,或许还有很久。
参考:
http://blog.wolfire.com/2015/10/Physically-based-rendering
https://www.chaos.com/cn/blog/what-is-pbr-physically-based-rendering-a-complete-guide
https://zhuanlan.zhihu.com/p/53086060
https://www.modding-forum.com/guide/17-diffuse-specular-and-normal-maps/
https://cgobsession.com/complete-guide-to-texture-map-types/
https://www.chaos.com/blog/what-is-pbr-physically-based-rendering-a-complete-guide
http://wedesignvirtual.com/what-does-a-specular-map-do/
写的信息含量和有趣程度都超出最初预期!这样的日志应该多些
@Zephyr Guardian:谢谢支持!