基于物理的渲染(PBR)是一种着色和渲染的方式,能更精准的体现光线和介质表面的交互方式。因此称作基于物理的渲染(PBR)或者基于物理的着色(PBS)。从正在讨论的工作流程角度而言,PBS通常针对着色概念,PBR针对渲染和光线的概念。但是,PBS和PBR都是从物理上精确的角度描述呈现物体的过程。

基于物理纹理的渲染(PBR)是一种方法而不是硬标准,有具体的基本准则和使用指南,但没有真正具体的规则。也就是PBR的使用方法多种多样,使用的贴图类型和工作流程也不一样。通常使用GCX BRDF,但是术语也会有变化。此外,一些使用方法改变了贴图名称,尽管其根本用法保持不变。(两种工作流程:高光反射/光泽度工作流程)

PBR的优势
美术会从艺术和创作效率两方面考量PBR的优势。PBR消除了创作表面特性的猜测,例如高光反射,因为其研究方法和计算方法都是精确的物理公式,因此,创作的物体也更具有真实感。物体在各种光源下都很逼真。PBR工作流程具有一致性,即使不同的美术创作同一物体也可以很好的接续工作。

1 漫反射贴图(Diffuse / BaseColor / Albedo Map)

在这里插入图片描述

Diffuse Map(漫反射颜色)应该表示物体表面的颜色,在Unity中叫做Albedo。在Specular/Glossiness工作流程中,对于金属材质而言它没有漫反射(或者说比较少),所以使用黑色来填充。而非金属材质反射光少于金属材质,并且它折射的光只有较少的吸收通常重新折射回表面,因此对于非金属材质,使用的是漫反射颜色来填充。需要特别注意的是,漫反射纹理不应该包含任何光照信息,因为将基于(环境)添加光照到物体的纹理上。

Diffuse : 有光阴信息的颜色贴图
BaseColor(金属/粗糙度工作流) :只有颜色,带了金属的反射率值,所以需要配合上 Metallic Map一起使用的。
Albedo:Unity中的颜色和纹理贴图

在高光反射/光泽度工作流中,Diffuse贴图严格影响着材质的基本颜色而对材质的其他特征没有影响。对于介电材质而言,其材质颜色来自Diffuse贴图;对于金属材质而言,大部分颜色来自Specular高光贴图。

在金属/粗糙度工作流中,BaseColor贴图实则包含了漫反射和高光贴图的信息。而Metallic贴图这决定了有多少BaseColor被解释为漫反射或者高光。

2 梯度贴图 (Gradient&Ramp Map)

梯度贴图也可以认为是颜色贴图的一种,这类贴图通过在一维或二维的方式将一种颜色映射到另一种颜色。且通常作为全局资源使用(不是特定于某一模型),用来制作动漫风格的效果,根据光照信息显示光影。

在这里插入图片描述

3 凹凸贴图(Bump / Height / Displacement Map)

在这里插入图片描述

3.1 凹凸贴图(Bump Map)

Bump Map(凹凸贴图 )是一个类似于法线贴图的概念,有时也称为Height(高度图)。但是凹凸贴图只包含高度信息而不包含角度信息。凹凸贴图的优点是可以很直观地看出模型表面的凹凸情况(颜色越浅表明该位置的表面越像外凸起,反之亦然),但是计算更复杂,因此更性能开销更大。高度图通常与法线贴图结合使用,用于给出表面凹凸的额外信息。

高度贴图应该是灰度图像,白色区域代表纹理的高区域,黑色区域代表低区域。这是一个典型的反照率图和一个高度图。
在这里插入图片描述

3.2 法线贴图 (Normal Map)

Normal Map(法线贴图)是凹凸映射技术的另一种应用。法线贴图包含角度信息而不包含任何高度信息,其R、G、B三个通道储存的信息表示了斜面的方向和陡峭程度。使用法线贴图和高度贴图可以确保光照和位移是一致的,能够带来更真实的效果。

这一特征使得我们可以使用法线贴图储存的角度信息来柔化尖锐的边缘(仅使用Bump高度信息无法做到这一点,因为只有高度信息无法知道边缘应该沿着哪个方向弯曲)。柔化边缘不仅可以让物体看起来更真实,还能进一步突出物体的形状(尤其是在游戏对象在屏幕上占比较小的时候)。

在这里插入图片描述
由于法线贴图存储的是表面的法线方向,而方向是相对于坐标空间而言的。因此存在三种不同的空间法线贴图:Tangent切线空间、Object对象空间、World世界空间,三种法线贴图都有各自的优缺点且能达到相同的效果,只是计算方式有所不同。

angent Space 切线空间贴图
在这里插入图片描述

Tangent Space(切线空间),顾名思义,切线空间法线是基于每个面的切线方向。切线空间下的法线贴图是最常见的法线贴图形式,大部分看起来都是浅蓝紫色的。其中,B通道表示法线方向的斜率;R通道表示左右切线方向的斜率;G通道表示切线方向向上或向下的斜率(OpenGl向上,DirectX向下)。

在这里插入图片描述Object Space(对象空间或模型空间)法线贴图基于整个对象而不是每个面,大部分看起来都是五颜六色的。对象空间法线贴图在渲染上较快,但由于其无法镜像任何UV,在对称模型上会浪费大量纹理空间,且无法进行UV动画。因此在很多情况下切线空间较优于对象空间。

在这里插入图片描述
World Space世界空间法线贴图是基于全局坐标的法线贴图,也是三种法线贴图中最不灵活的一种。 这种类型的法线贴图一般仅用于环境这类大型,静态和非对称的物体,或者临时用于诸如Substance Painter、Substance Designer之类软件中作为计算特殊效果(如风化效果)的一种方法。

3.3 置换贴图(Displacement Map)

Displacement Map(置换贴图,也叫移位贴图)可以改变模型对象的几何形状,但要达到较好的置换效果需要提高模型本身的顶点数,通常结合曲面细分使用。因此在提供最真实的效果的同时也会大幅增加渲染性能的开销。置换贴图能实现很多仅仅通过Bump和Normal无法实现的效果(尤其是模型对象的轮廓表现)。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
使用法线贴图效果
在这里插入图片描述
使用置换贴图效果
在这里插入图片描述

4 透明贴图(Opacity Map)

可以使用不透明度贴图使材质区域透明。它可以用于树木或贴花,如上图所示。您可以在单个多边形平面上构造一组完整的树叶,并使用不透明度贴图使多余的多边形消失。然后可以对这些多边形进行分层,以创建只需要很少处理能力的真实树。不透明度贴图也为灰度图。白色是完全不透明的,而黑色是完全透明的。它们之间半透明程度的变化由灰色表示。0.0是不透明的,而1.0是透明的。
在这里插入图片描述

5 反射贴图

5.1 金属/粗糙度工作流反射贴图

金属度贴图(Metallic Map)
金属度贴图,指曲面反射其周围环境的程度。金属贴图起到类似于蒙版的作用,区分固有色贴图中的金属和绝缘体数据。在金属性贴图中,0(黑色-0 sRGB)表示绝缘体,而1(白-255 sRGB)表示金属。对于金属而言,在光谱区有强的光学吸收,而同时又有大的反射率,因此不会显示出漫反射颜色;而非金属有大量漫反射。 二者有明显的区别。
在这里插入图片描述

粗糙度贴图
Roughness(粗糙度贴图)定义材质得粗糙度信息,0(黑色-0 sRGB)表示光滑,1(白-255 sRGB)表示粗糙。粗粗糙度是指造成光漫射的表面不规则状况,反射方向根据表面粗糙度自由变化。这改变了光的方向,但是光强度保持恒定不变。表面越粗糙,高光越散越暗。表面越光滑,高光反射集中,尽管反射的光的总量是一点的,表面也会更亮,光会更强。
在这里插入图片描述

5.2 高光反射/光泽度工作流

高光贴图(Specular Map)
高光反射规定了金属的反射率值和非金属的F0。使用RGB贴图可以在贴图中创建不同反射率的电介质材质。高光度也可影响材质的光泽度。 将“高光度(Specular)”值调整到接近1时,将使材质的反射和反射高光显得特别强特别显眼, 而将该值减小到接近0会弱化反射及反射高光,直到它们几乎不存在为止。高光度(Specular)也深受粗糙度影响。 即使“高光度(Specular)”输入设置为1,通过将“粗糙度(Roughness)”的值设置为1,也可以取消高光度效果。 另外,如果启用了金属感,那么调整高光度不会影响材质。

拿一面墙的贴图举例,砖的表面与砖缝相比将会有比较少的反光,但是砖缝的位置其实应该几乎是没有反光的。(确定好整体高光的强弱之后,就开始在高光上叠加细节:比如金属划痕,金属倒角高光,锈渍周围的裸金属亮点,油渍,灰尘等.这时,你会发现,如果你在Diffusemap的绘制过程中,保留了纹理,划痕或以上提到过的细节的图层,你只需要将Diffusemap中的相应图层拖曳到Specularmap中,然后根据这些细节应该反映出来的高光强度调节就可以了

光泽度贴图(Glossiness Map)
光泽度无非是指表面反射光线的能力。 表面能够反射的光线越多,光泽度越高。 表面能够反射的光线越少,光泽度越低。 表面反射光线的能力受环境中各种因素的影响,例如落在对象上的那些非常小颗粒的灰尘,以及接触对象时从手上沾染到对象上的油污, 所有这一切都会影响表面反射光线的能力。
在这里插入图片描述
各向异性贴图(Anisotropic Map)
是一种特殊的反射贴图。拉丝金属通常具有各向异性的高光,这是由表面的微划痕引起的。有时使用各项异性贴图去制作拉丝金属的效果。
在这里插入图片描述

6 曲率贴图(Curvature Map)

曲率贴图允许提取和存储凹凸信息。黑色的值代表了凹区域,白色的值代表了凸区域,灰度值代表中性/平地。
在这里插入图片描述

7 环境光遮蔽贴图(Ambient Occlusion / AO Map)

Ambient Occlusion(AO,环境光遮蔽贴图)描述了较大尺度的光线遮蔽信息,通常由高模烘培得到。指表面某点能获得多少环境中的光,用来模拟物体之间所产生的阴影,在不打光的时候增加体积感。

环境光遮挡将阴影添加到具有裂缝的对象的被遮挡部分,使其看起来更逼真。在渲染时,该贴图将和反照率混合,以描述其对光线的反应。这张地图是灰度的,白色占据了大部分的光线,而较暗的部分则更多地处于阴影中,光线反应性较弱。遮挡值的范围从0.0到1.0,0.0表示完全黑暗(遮挡),1.0表示没有遮挡。
在这里插入图片描述

比如我们有一个砖块表面,反照率纹理上的砖块裂缝部分应该没有任何阴影信息。然而AO贴图则会把那些光线较难逃逸出来的暗色边缘指定出来。在光照的结尾阶段引入环境遮蔽可以明显的提升你场景的视觉效果。

环境光遮蔽贴图基于物体与其他物体越接近的区域,受到反射光线的照明越弱这一现象来模拟现实照明的一部分效果。该贴图只影响漫反射分配,不影响高光反射分配。

8 厚度贴图(Thickness Map)

Thickness(厚度贴图)记录了表面厚度信息,可以用于辅助制作表面散射(SSS,简称3S材质)材质,或直接扩散/反照率假装SSS的效果。其黑色代表薄的地方、白色代表厚的地方。通常用在角色材质上。

9 自发光贴图(Emissive Map)

(自发光贴图)控制表面发射光的颜色和亮度。当场景中使用了自发光材质时,它看起来像一个可见光。物体将呈现发光效果。自发光材质通常用于某些部位应该从内部照亮的物体上,例如监视器屏幕、高速制动的汽车盘式制动器、控制面板上的发光按钮,或黑暗中仍然可见的怪物眼睛。简单的自发光材质可以通过一个颜色和亮度来定义。
在这里插入图片描述

10 位置贴图(Position Map)

Position Map(位置贴图)使用R/G/B三个通道描述X/Y/Z轴上顶点对应的位置,常位置贴图来实现模型底部到顶部的渐变效果等,如墙壁底部的污渍、石块底部的青苔。
在这里插入图片描述

其他

ID贴图

在一个模型中,不需要打上不同的材质, ID贴图将不同颜色赋予模型的不同部件。
方便在贴图制作软件(SP)中将不同部分打上不同材质信息。
在这里插入图片描述

Spherical Environment Map(球面环境贴图)

是最简单的反射映射技术之一。球面环境贴图将环境光存储在球面上,然后用环境光去渲染整个的物体。由于是通过球体来存储环境信息,这就导致了描述的不是均匀的信息,会在靠近极点的地方出现扭曲(墨卡托投影:将地球进行投影到平面,维度高的地方在平面地图上看起来会更大)
在这里插入图片描述

Cube Map

Cube Map(立方体贴图)是环境映射的一种实现方法。环境映射可以模拟物体周围的环境,而使用了环境映射的物体可以看起来像镀了层金属一样反射出周围的环境。
在这里插入图片描述

Radiosity Normal Map(辐射度法线贴图)

Radiosity Normal Map(辐射度法线贴图)是光贴图和法线贴图的特殊混合。可以将照明作为一组三个光照贴图进行烘焙,以存储照明矢量,而不仅仅是亮度/颜色。这使表面法线贴图可以接收定向照明,因此,通过烘焙的照明信息可以更准确地照明凹凸。
在这里插入图片描述

Flow Map

Flow Map(流动贴图)存储的是向量场数据,可以用来制作流动的水面效果。在这里插入图片描述

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐