游戏观察 游戏产业媒体
手机端下载
当前位置:游戏观察 > 新闻 > 研发资讯 > 正文

如何提高游戏的画面水准? 基于物理的渲染技术

2018-07-21 16:00 来源:网易游戏学院

  游戏观察7月21日消息,在这个看脸的世界,连玩游戏都要看外观好不好看。毕竟人会对好看的事物有天然的吸引力,即便游戏做得再好,画质太渣还是很难引起玩家的兴趣。那么如何提高游戏的画面水准呢?合理的渲染就可以帮到你。就下面我们就来了解一下基于物理的渲染技术。

  最近不少参赛的小伙伴会跟我说:

  “如何提高自己游戏的画面水准?”

  “做一个好画面的游戏好难啊!”

  “我的游戏玩法很棒,就是画面有点渣..”

  既然你们诚心诚意地问我了,

  那我就大发慈悲地掉落个福利资源包吧

  基于物理的渲染技术(PBR)

万晋森

  讲师介绍:

  万晋森| 梦幻事业部高级技术经理

  2009年毕业于西北工业大学。担任网易产品客户端主程序,曾在《梦幻西游》电脑版负责客户端引擎开发。

  基于物理的渲染(Physically Based Rendering,简称PBR)是近几年来非常热门的渲染技术,它利用更接近实际物理理论的光照计算,使得呈现的画面更加真实;它的出现让整个游戏画面有了一个非常巨大的提升。除了让画面变得更好看以外,也让使用者可以简单的通过改变物体的几个物理属性就能渲染出想要的效果,而不用担心光照错误,这是非PBR渲染无法比拟的优势。

  今天的萌新资源,我们会从最基础的“一帧画面是如何渲染”的问题出发,分析渲染的整个流程,并逐步介绍基于物理的渲染背后的原理和秘密。

  1 . 渲染的流水线

  那么这里给大家提出一个思考题:

  一帧画面是怎么渲染的呢?

渲染的流水线

  简单来说,一帧画面的渲染可以分成以下几个部分。

  (1)渲染不透明物体, 也就是图片上的岩石、建筑等。

  (2)渲染透明物体,比如说图片上的蓝天白云。

  (3)后处理,类似于自拍后的“后期修图”。

  针对每一次的渲染,我们要做的其实就是把场景中的物体一个一个地依次渲染。当我们渲染一个物体的时候 ,要经历两个非常重要的步骤——光栅化和光照计算。

  光栅化是指我们把场景中的3D物体转化为二维离散像素过程,就像是我们扛着一台摄像机,在自己构建的3D世界中拍出了一张照片。紧接着,在光照计算这个步骤中,通过我们要为这张半成品照片添加上贴合现实生活的光照,让这张照片看起来更加逼真生动。

渲染的流水线

  为什么有的时候,我们选择了一样的硬件,有些游戏的画面就是要比其他游戏差很多呢?其实就是我们光照渲染技术的差距,我们选择光照计算的算法上的一些差异。

  光照计算是整个渲染流水线中最重要的环节。

  2 . 光照

  光照的组成

  任何物体的光照都有漫反射和镜面反射两部分。第一个部分是物体表面的漫反射(Diffuse),是投射在粗糙表面上的光向各个方向反射的现象;第二部分主要是物体表面的镜面反射(Specular),指若反射面比较光滑,当平行入射的光线射到这个反射面时,仍会平行地向一个方向反射出来。

光照的组成

  因此 ,当我们再想去计算光照的时候,就可以从漫反射和镜面反射两个分量分开去计算。那进一步,我们要对这两个光照分量形成的原理有一个理解。

光照的组成

  左边的图代表着两种光照分量形成的具体原理,右边的图事实上是图形学里面对两种反射计算的一种数学建模。

  在实际的画面渲染中,漫反射的作用在于让物体呈现出明暗变化、带有立体感。而镜面反射可以让物体的细节更加丰富饱满,让观看者有次世代的感觉。镜面反射的原理很简单,但在实际的渲染操作中却很难。我们平时所玩的一些手机游戏,由于性能的限制,往往就只具有漫反射的处理。

  直接光与间接光

  只有漫反射和镜面反射对于渲染一个好的画面是不够的。如果只有漫反射和镜面反射,那么我们看到的画面其实会和上面的左边这张图一样,只有直接光照;简单来说,就是只有光照亮的地方才会有光,光直射不到的地方是全暗的。

  事实上,我们的现实情况却并非如此;试想一下当我们早上拉开窗户的时候,整个卧室马上就能亮起来。显然生活中只有直接光照(Direct Lighting)是不够的。这里就要引入了一个间接光照(Indirect Lighting)的概念,光线经过多次的反弹进而散布在整个空间,就像是窗外阳光照亮了整个房间的过程。

直接光与间接光

  因此,综上所述,光照可以继续拆分成三个部分组成,直接漫反射、直接镜面反射以及间接光照。(前两者构成直接光照)

  总结一下,游戏渲染并没有那么复杂,它就是把一些复杂的问题,逐步逐步简单化。我们游戏中所看到的宏大的画面,在实际渲染过程中,其实都是细化到一个一个的物体进行渲染。由于计算机实际处理能力有限,我们又会进一步把光照拆分开,每一部分单独求解,最后才加在一起,最终构成我们所看到的非常棒的画面效果。

  3. 基于物理的渲染

  了解完光照的相关基础,其实PBR正是建立在上面的思路上的渲染技术。

  相比非PBR渲染,

  PBR渲染有三大前者无法比拟的优点:

  1 . 渲染画面逼真度高,很容易做出真实和照片级的效果。

  2 . 可控性强,通过改变物体的几个物理属性就能渲染出想要的效果。

  3 . 美术制作有科学依据,渲染出的画面符合现实情境。

  从这三个优点出发,不得不谈一谈对于PBR技术而言最至关重要的三个原则。

  原则1—— PBR的所有计算都是在线性颜色空间上完成的。

  在日常的生活中,人们往往使用sRGB作为颜色表示方式基于广泛运用在贴图、各种显示标准中。这是一种建基在Gamma空间的颜色表示方式。我们平时使用的相机、电脑显示屏、电视机,所采用的都是这种方式。

PBR的所有计算都是在线性颜色空间上完成的

  从图像中可以看到,人眼可以看到的灰度和实际物体的灰度值并不是成线性增长。简单来说,我们肉眼所能感受到的颜色变化,和实际上物体上的颜色变化往往是不一致的;我们对于中灰以下的颜色,其实可以分辨得更多。总的来说,Gamma空间,也就是一个非线性空间,我们过去常用的,建基在人眼的感受能力而不是物体实际颜色上的一种颜色表示方式。

  而相对于Gamma空间,线性空间则直接按照物体的实际颜色进行颜色表示;在线性空间上对于光照进行计算,才是数学正确的。这样可以使得PBR对于颜色的控制更加细腻,避免了以往非PBR亮度容易失控的情况。

PBR的所有计算都是在线性颜色空间上完成的

  从上图的例子就可以看到,图(a)是线性空间的光照,图(b)是非线性空间的光照。非线性空间光照很容易导致高光爆掉,线性空间下更加正确,更为可控。

  原则2——能量守恒

  刚刚介绍的光的几种现象,包括吸收、镜面反射、漫反射,都是由一个光束产生的。这一个光束打在物体表面上,一部分能量直接镜面反射掉了,还有一部分能量进入物体体内被吸收掉了,剩下的这一部分能量,经过一系列的过程最终折射出来了。这就是我们物体为什么能够看到颜色的最重要的原因。这一个过程也决定了,基于现实世界中的能量守恒,漫反射和镜面反射的强度之和不能超过入射光线强度。

能量守恒

  而PBR,事实上正是用了一个非常聪明的方法,通过保证漫反射和镜面反射的强度之和不能超过入射光线强度,实现了类似于现实中的能量守恒。以往的美术人员进行画面处理的时候,会做两张贴图,一张漫反射贴图,一张镜面反射贴图;当两张贴图叠加在一起的时候,很容易会出现漫反射和镜面反射的强度之和大于入射光线的强度,画面自然就会显得不真实。

  PBR整个的计算都是基于物理保证了能量守恒,这也是为什么PBR可以使游戏画面效果更加逼真。它就像一个“保姆物理学家”一样,防止作品偏离规则太远或者在不同光照条件下变得不一致。

  原则3—— PBR区别对待了金属与非金属

  金属与非金属在现实世界中在反射率、微表面等物理属性上都有着很大的差异。因此,在PBR中,它们被分成了两个部分。

PBR区别对待了金属与非金属

  这里引入PBR技术中的一个物理属性值——金属度(Metallic)。当金属度=1时,表示这个物体是纯金属;当金属度=0时,表示这个物体是纯非金属。而上图黄色球的变化,则是金属度从0到1时的变化。

  在实际的渲染操作中,操作者可以通过操纵金属度的数值,进而改变图中物体对光的反射率,进而达到对于光照精确控制的目的。当然,对于新手们,还是推荐大家使用0或1,使用一种非黑即白的贴图。

  正是因为有了以上三条原则,PBR可以牢牢地在符合物理规律的情况下对图像的光照进行处理,处理出来的效果也可以更加贴近现实。而又由于PBR技术可以对诸如金属度、材质等物理属性值进行设定,美术同学在实际操作的过程中也更为容易更为可控。做一个拥有好画面的游戏的难度也就大大降低啦。

  挑战与建议

  当然,介绍了这么多PBR的好处,实际上用起来的时候还是有很多挑战的;这里也相应的给大家提出一些建议~

挑战与建议

  三点挑战

  (1)美术同学需要时间去理解和适应新的流程。只有深入地了解了PBR的原理,才能更好地完成贴图工作的处理。

  (2)制作周期较长。由于PBR用到了次时代的制作流程,所以制作的周期会比较长。相对的,用PBR把渲染做好后,返工的几率也会相应的降低不少。

  (3)较难适应非真实化渲染(Non-Photorealistic Rendering)。非真实化渲染,也就是真实化渲染的对立面,我们俗称为NPR。比如说日本漫画风、宫崎骏的动漫风格,用PBR来处理这些就不是很合适。

  四点建议

  (1)使用专业工具(Substance Painter)。因为专业工具会更加符合批量的制作流程。

  (2)建立标准测试场景。当我们制作完成后,可以放到标准测试场景中去验证它的对错。

  (3)提前制定好美术规范。美术规范的提前制定可以让我们后续工作中减少出错或是返工的可能,更高效地完成任务。

  (4)做好培训。PBR的良好使用,必须是建立在对于其原理的充分了解的基础上;在使用前,良好的培训是工作效果的必要保证。

  讲师结语

  对于一门技术,只有在了解原理的基础上去使用,才能得到更大的收益。当然,PBR也不是渲染技术的尽头,实际的使用上,它也还需要很多技术一起配合,才能做出更好的画面。

本网站所收集的资料来源于互联网公开信息或网友自助投稿,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。如果您发现网站上有侵犯您知识产权的资料,请与我们取得联系,本站会在3个工作日内删除。

游戏观察

聚焦极有价值的游戏产业资讯。打造有影响力的游戏产业媒体。

赋能游戏跨端开发,Unity于2021 ChinaJoy推出跨端移植服务