基于物理的渲染学习心得——面向使用的PBR理论

本文是笔者在学习PBR理论中的一些心得,并试图以结合Substance系列软件为例,从使用(实用)层面介绍PBR理论。

PBR的定义:

PBR全称是基于物理的渲染(Physically Based Rendering ),它是一套先进的渲染方案,能使物体对于光线做出精确的反应。从使用层面上来看,PBR是为了材质更加接近真实,至于表现PBR的过程及相关的Shader,我们不需要去了解,你可以把它认为是一个引擎,或者是一个黑盒,我们需要做的只是提供数据(即贴图)。

PBR与实时渲染

可以说PBR是为实时渲染服务的。传统贴图流程基于烘焙,在建模软件中设定灯光及环境,烘焙出彼时环境对物体的影响,特殊情况还会烘焙上一些阴影。那么在游戏引擎中,环境光照一旦变化,物体一旦移动,必然会穿帮。而PBR则只关心物体的物理属性,一旦给定了数据,则无论在任何光照条件下都能正确反映物体本来的样子。就像上帝造物一样,他只关心物,而不需要考虑光照,物造好了,无论是白天黑夜阴天晴天,物体都能对光线做出正确的表现。如下图,这是一个典型的使用PBR材质的模型,当在不同的光照环境下,它都能正确对光线做出反应,重要的是,这里只需要做一种材质而不是四种。


1199677-9b3373c0c0fed804.png
来自Marmoset官网
从PS中的RGB通道看PBR

我们来看一下PS中的通道。


1199677-25bc83f90fe7a9d0.png
PS中的通道

如上图,默认情况下,可以查看一张图片的红绿蓝三个通道,选择任意一个通道,相对应显示该图片的一张灰度图,那么这里的通道就是显示了这张图片每个点上拥有的颜色信息值。根据颜色理论,某一点的颜色,就是红绿蓝三色的混合程度,那么这三张“贴图”混合,就成了最终的“彩色”图片。
这跟PBR通道有什么关系呢?你可以把PBR的通道看做是维度的扩展,如果PS的通道是太阳、地球、火星组成的太阳系,那么在PBR维度,太阳系和其它星系就组成了银河系。在PBR的通道里,颜色只是其中一个通道,其它的还有Normal通道提供表面凹凸信息,Metallic通道提供是否金属信息,Roughness通道提供光泽度信息,其它通道若干。由此可见:

一切贴图都是数据

PBR用到的贴图,用来描述不同的物理属性,类似人的几大系统,比如消化系统、呼吸系统、神经系统等,那么PBR的各种系统,也可以表现为通道。简单介绍一下PBR的几个比较重要的“通道”:

  • 颜色贴图:描述物体某个位置的颜色;
  • 法线贴图:描述物体某个位置的凹凸;
  • Roughness贴图:描述物体某个位置的粗糙程度,注意,表现细节的划痕、污渍、指纹等,就是不同外形的粗糙程度的不同;
  • Metallic贴图:描述物体某个位置是否为金属;

那么这些贴图如何反映到3D模型上呢?这就需要UV的帮助:

UV是PBR贴图从2D映射到3D的桥梁

UV的展开方法,已经存在着很多解说了,比较形象的解释是类似于讲一个纸盒剪开,使其平整在桌面上。UV存在的意义,就是告诉渲染引擎,如何将一张2D贴图上的数据映射到3D模型上,过程就像将一张贴图包裹在模型上,而如何去包裹会有65536中包法,所以这时候就需要UV告诉引擎,如何将贴图按照我们想要的方式包住模型。做PBR贴图,模型方面绕不开展UV。那什么情况下不需要展UV呢?就是模型没有任何物理区别需要展现的情况,打个比方,浴缸,一个新浴缸——表面光滑、颜色单一、整体光泽度一致,这时候可以不用展UV。但是,如果要在浴缸的某个地方有写实的需求,比如年岁长一点,有了水垢,或者有掌纹、手印,这时候就必须要展UV了。

PBR与Substance系软件

Substance系列软件是典型的基于PBR理论的材质制作软件。掌握这两个软件的核心就是通过PBR理论或者思想去使用它们。这里不再介绍两个软件的界面,单就软件如何体现PBR思想来介绍一下,总体来说:

  • Substance Designer(以下简称SD)中通过输出节点来对PBR的各项物理属性进行构建。
  • Substance Painter(以下简称SP)中使用通道的概念对PBR的各项物理属性进行构建;
Substance Painter中体现PBR理论的地方:
  1. 材质属性面板:


    1199677-2ef6fb1c9dc4ef43.png
    Substance Painter的材质属性

    如上图,区别于PS的笔刷,SP中不只可以画颜色,一笔画下去,颜色、高度、粗糙度、金属、法线都有了,你可以选择关掉上面的任意一个开关,即不绘制相应的物理属性。

  2. 图层面板:


    1199677-8355141ace9c2e71.png
    SP图层面板

    如上图,下拉列表即材质的物理属性,可以选择相应的通道,通过图层右边可以调节当前物理属性的影响程度以及与其它图层的混合模式,如果你会点PS,这就很容易理解了。

Substance Deisnger中体现PBR理论的地方:

Substance Designer中每当新建一个材质,就会给出如下图的几个输出节点,输出节点越多,描述的物理属性越多:

1199677-8228aaf5d73cfb47.png
Substance Designer

近距离查看:
1199677-09b1d64720d4e83f.png
image.png

所以,在SD里,构建材质的过程,就是构建这几个输出节点的过程。

灰度图在各通道的意义

某些通道,如Roughness、Height、Metallic使用灰度图提供数据,灰度使用0到255这256个层级表示其程度,不同的通道,灰度数值代表的意义不同。

  • Roughness通道:数值越大,代表此处数据量越多,即此处越粗糙,数值越低,数据量越少,即此处越光滑。
  • Height通道:数值越大,此处越高,数值越小,此处越低。
  • Metallic:只有0和255两个数值,因为现实世界没有既是金属也是非金属的物质,0代表非金属,255代表金属,有些地方也会用0或1表示。
为什么说Roughness是表现细节的关键

抛开建模不谈,因为某些细节可以通过建模来实现的,比如表面裂痕、并不平直的直线、并不平坦的表面。边缘磨损、污渍、划痕,本质上来说都是Roughness程度的不同所表现出来的,比如没有擦干净的镜子,生锈的水龙头,有掌纹的杯子等。所以细节的打造,无论是在SP还是SD中,都要将注意力重点放在Roughness贴图的制作上来。

PBR与VR的交集——现实(真实)

除去如低多边形卡通艺术化的场景,决定VR场景品质的关键是真实,也是VR体验的第一印象。且不说PC端良莠不齐的贴图品质,如果只是将PC端的模型原样搬到VR中而不对材质做PBR加工的话,给人带来的震撼仅限于简单临在体验,而不是沉浸。

如何练习

鉴于PBR的宗旨是表现真实,平日里可以注意观察周围的环境,用PBR思维来分析看到的事物,使用颜色、法线、Roughness几个维度来分析,比如铺了瓷砖的地面,公交车上的把手,路边磨损的栏杆。在制作过程中,也可以搜索真实物体的照片进行比对,观察是什么细节决定了这个物体的真实。

总结:

PBR流程及其相关软件如Substance,正在逐渐成为CG行业的工业标准。如果你是团队,建议引入PBR工作流程,因为这是一套高效省时的工作流程,它可以更好的做人员分工,减少返工的时间成本,并且给项目品质带来提升;如果你是个人,建议早日学习PBR工作流程,因为越来越多的团队在使用这套流程。
这就是一个跨界程序员眼里的PBR理论,希望对你有所帮助。

参考文档:

猜你喜欢

转载自blog.csdn.net/sovida/article/details/81049052