Substance Designer 学习笔记之六:PBR应用揭秘

网上共享模型PBR贴图渲染。

       【前言】

       关于PBR技术,我在《Substance Designer 学习笔记之五:PBR贴图解密》已经解读很清楚了。关于PBR应用,我在网上看了很多文章、很多视频,我个人认为他们的讲解不太正确,而且对这个技术的应用理解也不够全面。
       很多网友,都希望我编写CORONA、OC、REDSHIFT等渲染器,它们是如何使用PRB两个流程贴图进行渲染的文章。我为什么一直没有写呢?因为三维动画软件的渲染器以及插件,说实话,并不是都支持PBR。我总是在想,为什么非要使用PBR两个流程呢?对于不支持PBR的渲染器,使用基于PBR两个流程的贴图意义何在呢?为了快速渲染?不可能!传统渲染器材质载入PBR贴图,也需要一点点渲染。设置简单吗?一点也不简单!它需要不断调整。渲染真实吗?可能就是为了这个原因吧。仅仅是为了渲染真实,为了得到“完美”贴图,就用SP、SD中制作基于PBR贴图,是不是成本有点太高了?
        思考许久,我用了2个星期,精心地写一篇关于PBR应用的体会文章。
        在这篇文章里,就把各位关心的问题,用图文形式揉碎了,详细掰扯,并一一回答。
        本篇涉及众多渲染器和软件,应该是网上少见的、枯燥的、能引起你思考的理论性文章,关键是能让你明晰整体的构架和思路。如果理解了,那么,我感觉以后自学渲染器,凡是涉及贴图问题,都可以自行解决了。
       本文将通过十个题目,来解答关于PBR渲染的一系列疑惑问题。
       

【研究】

问一:支持PBR游戏引擎与传统不支持PBR渲染器的区别和各自优点?

现在,流行的游戏引擎(UE4和U3D)都支持PBR这两个工作流程。游戏引擎使用PBR渲染技术,当贴图赋予模型之后,材质几乎无需设置,立即就能真实渲染。
而且材质与光源无关,也就是说,你更换什么光源(HDRI照明),材质都能显示逼真效果,这使得游戏制作简单化了。但渲染效果与你使用HDRI有很大关系,不同的HDRI带来的效果不一样。注意上下两张图,使用日光和室内的HDR渲染效果,材质都能真实呈现。

       当你读了《Substance Designer 学习笔记之五:PBR贴图解密》这篇,明白了PBR原理,应该知道,这个PBR解决方案,实际上,不太适合在传统三维软件的渲染器上应用。 多说几句,传统渲染器也不是不能用PBR贴图,但需要动脑筋设置和优化,而且渲染速度也没有快多少,可能更慢!关于如何设置见后面问题。

支持PBR游戏引擎和渲染器,使用基于PBR贴图,渲染会使材质更真实!但光影效果一般,都不真实。因为这类渲染器为了追求渲染速度,所以一般不使用光线追踪等全局光渲染手段,所以,光影很假,不适合制作静帧,但非常适合制作交互和动画视频。随着技术发展,现在游戏引擎也开始支持全局光渲染技术了,但只局限于静帧渲染。制作交互动画,为了提高渲染速度,只能巧妙地使用场景灯光烘焙技术,把光影烘焙出环境贴图,再赋予场景。但那种光影是“死”的,不会随着光源而变化,与传统全局光渲染还差了不少,但快啊!
 传统渲染器全局光渲染速度虽然慢,但模拟的是真实的光线传播,材质真实,整个光影非常真实。所以,适合重视细节、注重光影真实表现的室内外、产品等静帧渲染。由于渲染太慢,不适合动画制作,成本太高,客户急死了。

问二:PBR贴图(包括两个流程)到底是什么?效果是否一样?

回答:

       制作基于PBR两个流程贴图,一是Metal/Roughness 金属-粗糙度流程;二是Specular/Glossiness 高光-光泽度流程。这是PBR两套记录材质数据的方式而已,官方说使用哪一个效果都是一样的。
       但我认为:建议支持PBR渲染器使用金属粗糙度流程贴图,而不支持PBR技术的渲染器使用高光-光泽度流程贴图。为什么?你往后看,我会在后面的问题中解答和演示。

上面是Metal/Roughness 金属-粗糙度流程;下面是Specular/Glossiness 高光-光泽度流程。

共同点是:
都使用相同的AO、Normal、Height纹理贴。

1、用AO贴图去表现模型自身和模型与其他相交地方的阴影,突出立体感。支持PBR游戏引擎都是用AO贴图,但三维软件渲染器很少使用它,因为渲染器自带AO功能,看你是否启用了。

AO贴图能加深模型接缝的深度。AO贴图是一张灰度贴图,为了节约资源,有的时候,把几个灰度贴图保存在一个RGB图像里。比如R通道为AO贴图数据,G通道为粗糙度贴图数据,B通道为HEIGHT置换贴图数据。使用的时候,载入这张RGB图像,从相应通道提取所需数据。所以,这张有三个通道数据的图像,看起来很诡异,实际上它就是个集成贴图数据。后边详细说如何把此图一分三转换。

        2、NORMAL贴图使模型光影表现凹凸的细节。使用法线贴图要注意,因为它有两种格式,一种是针对DX格式。一种是针对openGL格式。两种贴图互为Y轴相反。3DSMAX支持DX,因为它的世界坐标是Z轴向上,MAYA和C4D支持后者,因为它们Y轴向上。还要注意:所谓C4D支持OPENGL格式,也是指C4D自带渲染器而言,其它的渲染器插件不一定啊。总之,使用NORMAL一定要看渲染结果光影是否正确,如果不正确,就翻转Y轴。

上图没有加入法线贴图
加入法线贴图,这是一个巧妙的障眼法啊!节约模型面数,同时提高了模型细节,提高渲染速度。

3、用HEIGHT贴图去改变模型的外观。

首先载入高度贴图数值不能调整太大,太大模型容易炸裂。其次,如果不是从侧面特写,想要突出模型凸起,使用法线贴图要比HEIGHT置换贴图好的多。

不同点是:
Metal/Roughness工作流程使用:BaseColor、Roughness、Metallic三种纹理。
Specular/Glossiness工作流程使用:(Albedo)Diffuse、Glossiness、Specular三种纹理。
你就记住这两个流程贴图都叫什么即可,后边详细解答。

问题三:怎么理解Base Color Map / Albedo Map / Diffuse Map?

回答:很多网友都问上面的概念是咋回事?有的说是一样的?真是一样的吗?我谈谈我的理解,首先三者贴图上的颜色都不应该含有光影信息。什么叫不含光影信息呢?

我们一般拍照的照片,不能直接拿来当做颜色贴图使用,就是因为照片纹理包含高光和阴影。因为模型上的高光和阴影,应该由法线贴图或凹凸贴图、灯光环境在计算时,决定哪个地方有高光,哪个地方有阴影。要求颜色贴图不能自带这类信息,如果携带就会造成渲染结果错误,所以,必须把它们去除才行。
我们使用Substance Alchemist中的Delight光影去除功能。

      1、Diffuse Map是过去渲染器老流程的漫反射颜色贴图,最早的Diffuse是手工绘制的,是包含光影信息,甚至AO信息也绘制上面,因为那个时候没有全局光渲染,都是直接光渲染,也表现不出来,所以只有手工绘制上去。所以,那个时候,渲染逼真,布光绘制贴图还真有点功夫,否则渲染的结果很假。后来,随着全局光计算的快速发展,Diffuse贴图要求就更高了,物理性更强,去掉光影信息,去掉AO信息,贴图如果表示金属也是用黑色。

       2、高光-光泽度流程的Albedo Map,内部包含有非金属漫反射(非黑色)和金属(黑色)的数据,而金属的颜色是在Specular贴图相应位置显示的。所以,有的时候,使用传统渲染器,它们的作用是一样的,所以PBR技术文章有时候把它们放在一起说,现在的Diffuse约等于Albedo。

       3、金属-粗糙度流程的BaseColor Map,内部包含金属和非金属颜色,同时,还包含各种颜色的灰度值对应各自F0数值。也就是说该帖图包含颜色+F0数据。如果你把该帖图直接丢给传统渲染器材质的COLOR通道,那么,只能使用颜色数据,F0如何读出来?

问题四:为什么金属没有漫反射,非金属有漫反射?为什么白色光源照射下,非金属高光都是白色,而金属的高光都是彩色的?

回答:先问你,什么是漫反射?漫反射是一些光线照射到物体时,进入了物体表面层。在物体表层里,进行无序反弹,同时又发生了吸收,进入模型的光线某些波长光被吸收掉了,没了。而剩余的某些波长的光再从物体浅表面出来,无序地射向四面八方。从整体看,就是光从物体表面射向四面八方,并呈现颜色(这个颜色是射出来的光线波长决定的)。你没有想到吧,这个漫反射表面整体看是“反射”,实际上是浅表面的“折射”。只是与透明物体折射不同,它是穿物体而过,而漫反射是光线向周围无序地折射。

高光是镜面反射,反射光线比较集中,反射强烈。漫反射是光线射入媒介以后。在前表面折射出来的,光在媒介2要发生吸收和散射。如果这种现象发生在整个模型的内部,那么就不是漫反射了,是散射吸收,SSS材质怎么来的?

       那高光是怎么回事?高光可不是漫反射,它是光源照到模型表面上,沿着你眼睛的方向直接反射回来,光线一是没进入模型内部,二而是没有没有散开,所以能量很集中、很亮啊。这种反射又叫高光反射或镜面反射,这种反射具有方向性,需要特点角度才能看到高光。所以,布光的时候,你需要不断地调整灯光和摄像机,让漂亮的高光进入摄像机内。那种在模型表面杂乱无章的反射叫漫反射,它不具有方向性,所以,你在哪个方向都能看到它。

介质表面光滑度决定是高光反射和漫反射
比如非金属,一个白色光源照到一个球体,有一些光线直接就反射回去了。如A,而且光线没有发散也没有吸收,直接射入你的眼中,在模型上最亮的地方叫高光。非金属的高光形状与光源和模型表面状态有关,而非金属高光的颜色是由光源的颜色决定的,与自己本身颜色无关。如果外面光源是白色的,高光就是白色的,即使你是个红色的非金属,只要光源是白色的,它的高光也是白色的。非金属呈现的颜色,是谁决定的?如B,更多的光线进入非金属表面之内,在表面内部进行无序地吸收和散射,然后一部分波长的光被非金属吸收了,只有红色波长的光向反方向“折射”回来,而且射向四面八方。所以,你可以从任何角度看到那是个红色的球。而高光不是杂乱无章的光线,它是集中的、定向的全反射(镜面反射)光线,所以,你只能从特定角度看到射入你眼中的高光。
所以,一般渲染器,我们设置材质,漫射通道颜色设置红色,勾选反射,非金属反射通道的颜色一定要设置为白色。这样非金属高光的颜色就会与外界光源颜色一致。
在非金属上放一个白色的矩形灯光,看看吧,那个高光颜色和形状。
金属可不一样,白色的矩形灯光照射下,金属呈现金黄色,那个高光也不是白色,很有自己个性啊!
金属材料没有漫反射,只有反射!光线射向金属时,一部分波长的光线被金属直接吸收,剩余波长的光线直接被反射回来,也射向四面八方,这样你在任何地方都能看到金属的颜色。而高光也是如此,白色光源直接照射到金属表面,一定的波长光也被吸收了,其他波长的光线集中地射向你的眼睛里,所以,在特定角度,你看到了有颜色个性的高光。 
一般地,我们设置金属材质都这么做:在材质的漫射通道,不勾选漫反射,因为它没有漫反射。或者勾选漫反射通道,设置为黑色,表示它没有漫反射。在反射通道中,反射颜色设定你要的金属颜色,表示只有这种颜色的光线被反射回来了,也就是金属呈现的颜色。
为什么金属表现为闪闪亮亮的刚性,而塑料呈现的缓缓的柔性呢?那是折射率不一样。在传统渲染器中,模拟金属,要把 IOR 设置非常高,非金属一般设置1.5左右。实际上,反射和折射都有菲尼尔现象,也就是说,我们感觉物体不同位置的反射强度不一样。而在传统渲染器中,就是用IOR就是描述菲尼尔现象强弱的。
无论金属和非金属都有菲涅尔现象。在PBR理论中,不是用IOR折射率描述菲尼尔现象强弱的,而是用F0描述。  在模型上看,当光线直接或者垂直(以0度角)照射介质表面的时候,那个位置反强度定义F0,代表物体的反射程度。边缘光线入射角接近90,我们定义F90。一般情况下,无论金属和非金属,它们的边缘反射几乎为100%,差异非常小。但不同的介质在F0位置反射强弱不同,反射率也不同。金属的F0反射强度能达到70-100%,从中心到边缘几乎都反射,所以闪亮闪亮的。而非金属F0中心位置反射强度只有2-5%左右,周边反射很强,中间反射很弱,所以就感觉缓缓的柔顺。
有些传统渲染器,比如REDSHIFT,它的菲尼尔属性有四种描述方式:第一种折射率+消光系数,这个是基于物理的设置,非常准确;第二种颜色+边缘颜色适合艺术人设置使用(类似F0,F90设置);第三种METALNESS金属度,这个是给PBR渲染对接金属-粗糙度流程的贴图使用;第四种IOR是传统的折射率,如果要模拟金属,数值大于10以上。

总结:上面讲的这些很重要,如果你理解了,各种材质涉及的漫反射、反射、吸收和反弹、SSS也就明白了。都是一个道理。渲染器的计算就是在模拟现实的光线传输现象,发光、吸收、反弹。

问五在金属-粗糙度流程中,金属度贴图起的作用是什么?金属和非金属的颜色和反射率都在哪个贴图中体现呀?

回答:

       在金属粗糙度流程中,金属贴图就是遮罩,它告诉模型什么地方是金属,什么地方是非金属。而金属有反射率,不同金属反射率还不同。非金属也有反射率啊,而金属和非金属反射率是不相同的。

METALLIC金属度贴图:这是一个黑白图,它就像一个掩码,它只有一个作用,告诉引擎哪个地方是金属,哪个地方是非金属。当metallic贴图某个位置值为0的时候,BASECOLOR贴图对应的F0值是0.04;而当metallic值为1的时候,F0的值是0.7-1;metallic是0-1的中间值的时候,F0也会在0.04和1之间进行对应的插值,是线性差值。在这个过程中F90不变,永远恒定为1。
上面左图是BASECOLOR贴图,中间图示是 metallic 金属贴图。当metallic值为0的时候,金属度贴图是黑色,  对应BASECOLOR贴图就是非金属部分,颜色就是非金属颜色,它的灰度值就是 F0,值是0.04,也就是只有4%反射强度;而当metallic值为1的时候,金属度贴图为白色, 对应的BASECOLOR贴图颜色是金属颜色,它的灰度值就是 F0,它的范围在0.7-1,有70-100%的反射强度。
你可能问,怎么这么麻烦?我们过去使用传统渲染器时,使用的贴图如左侧,都是描述一种材料的纹理,没有UV限制,所以,材质使用时,如何把纹理贴图贴到模型上,你需要用渲染器自带的投射方式去设定。而使用PBR技术游戏引擎,我们只能使用模型和一些贴图。我们做法,一般把模型UV拆分,然后去绘制,模型上有的地方是金属,有的地方是非金属,都要在颜色贴图上表示出来,如右侧贴图,那一张颜色贴图中有很多材料的颜色数值和F0表示中间反射强度的数据。所以,还需对应的一张金属度贴图,告诉渲染器那个地方是金属,那个地方是非金属。OK?

总结:
       1、反射颜色,在外界光源是白色的情况下,所有非金属的高光都是白色的。而金属却不一样,它的高光与自身材料有关,都是有颜色的。
        2 、在PBR中,金属和非金属是用F0(材质中心)和F90(材质边缘)数值来控制反射范围(菲尼尔强弱)的,而不是传统渲染器用IOR折射率来定义的。
        3、下面提供两张PBR材质F0数值表。建议绘制PBR贴图,最后使用专用的工具,比如SP、MARI等,而不要用PS和BODYPAINTER。因为前者,软件可以自动把颜色和F0控制在以下数据列表的合理范围之中。后者,人为因素太大,绘制的贴图也没有科学性。

金属的F0表。COLOR是BASECOLOR贴图的金属颜色,F0是这个颜色的灰度值,它有两种表述:LINEAR是线性流程描述,0-1之间代表有很多很多灰度。sRGB代表非线性空间,0-255,代表256阶灰度。颜色空间不同。
非金属F0表,同理。

问六:PBR贴图开发工具软件有哪些?

回答:

1、早期法国Allegorithmic公司的系列产品:Substance Painter 、Substance Designer、Substance Bitmap2Material、Substance Player 四个产品。

Painter绘制贴图、Designer通过节点编辑材质包SBSAR,Bitmap2Material把普通贴图转换为各种贴图,Player把自己独有的材质包SBSAR转换给其他三维软件,起着接口和桥梁作用。

        后来,被ADOBE公司收购了,推出了Substance Painter 、Substance Designer 、Substance Alchemist、Substance Source四个产品。

这是被ADOBE公司收购以后的产品。

2、MARI

Mari®是一款功能强大的3D绘画软件,能力和性能在业界都是高端的,可以处理甚至最复杂的贴图纹理,能最大限度提升创造力。该软件在影视方面应用较多,要求硬件设备也非常高。我虽然知道它的工作,但没用真正用过它,所以就不评论了。

3、Quixel Suites、NDO、3DO、MegaScan
       这套工具是基于PS平台上,具有强大3D绘制能力,支持PBR渲染技术。绘制纹理贴图尺寸可达到8K,拥有1000多种基于真实扫描的材质。注意,它是基于真实的扫描纹理图案绘制贴图的,而上面的Substance系列3D纹理绘制都是基于自家的SBSAR程序贴图,所以,它的文件很小,只有几K。

最早Quixel Suites包含NDO、DDO、3DO、MegaScan材质库,它们四个合起来叫做Quixel Suites套件。现在看来,它仍然是一套好工具。

       它的死敌SUBSTANCE工具软件被ADOBE收购了,Quixel尴尬无比,因为自己的软件是在ADOBE PHOTOSHOP平台上。后来,Epic Games(UE4游戏引擎的母公司)收购了Quixel,丰富了真实世界3D扫描纹理数据,组成了Megascans库,又开发材质编辑Mixer和资产浏览Bridge软件,而 Megascans资产目前对虚幻引擎用户(UE4用户)免费开放。

收购后三个新产品:Megascans库、Mixer  、Bridge。公司重新转变了思路,不再与SUBSTANCE产品正面竞争了,转为提供大量贴图和模型库,与你的三维创作软件转换和对接。你需要的模型和贴图我都有,这能大大提高创作的效率。

4、Toolbag 4

你没有想到吧,Toolbag 过去是一款用于检测模型和贴图正确与否的渲染软件。升级4以后,也能烘焙和制作纹理贴图了。

不是不明白,世界变化快。有机会,我们研究一下Toolbag 4 贴图烘焙和贴图绘制功能。

总结:
      1、 基于PBR贴图绘制的软件还有很多,如乌克兰的3D-Coat4等,还有一些如XNOMALS等小工具软件。但现在最流行的,也最应该学的,我建议:如果你是美工,手绘功能很强,就学Substance Painter ;如果你逻辑性很强,善于节点编辑,那么学Substance Designer也不错 ,二者熟悉其一即可。然后再学习一下Substance Alchemist,它能把现有的贴图资源再合成新的资源。因为Substance在ADOBE支持下,更新速度也太快了,这是要统一贴图纹理制作的天下呀!要成为行业的标准啊!
       2、 如果你不想绘制贴图,想拿来主义,那么就学习Quixel公司的Megascans、Mixer和Bridge,贴图和模型都拿去,下载使用就是了。
       3、不要再学习旧的贴图绘制软件了,那些都是传统老旧的工作流程。尤其是绘制基于PBR贴图,尽可能不要用PS和C4D的BODYPAINER绘制贴图了,人为因素太大,满足不了对PBR基础数据的要求。建议也不要再用XNOMALS烘焙贴图了,因为SP和TOOLBAG4烘焙贴图效率要比它好很多。

还有 72% 的精彩内容
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,271评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,275评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,151评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,550评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,553评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,559评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,924评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,580评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,826评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,578评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,661评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,363评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,940评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,926评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,156评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,872评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,391评论 2 342

推荐阅读更多精彩内容