PBR贴图
在开始之前,要对究竟什么是PBR以及PBR需要什么样的贴图做一些澄清。
首先,金属贴图metalness map并不是PBR的必须,也不是使用了高光贴图specular map就不能算作PBR。
PBR基本概念是一系列复杂的处理真实物理和光照的渲染器的组合,以及在这些渲染器下工作的一系列使用了标准化的表示真搜山实材质属性的参数的贴图。
PBR本质是一个用于创建贴图和做渲染工作的整体系统,通常在不同的工具和引擎下有不同的实现(一般指渲染器模型和贴图的输入类型)。
直接将非PBR的作品在PBR的渲染器下渲染是不会有正确真实的效果的。所以,渲染器只是PBR的一部分,要正确地使用PBR得到真实的效果,还必须要考虑到如何正确地校准、使用PBR下的贴图。
要想透彻理解怎样创建PBR贴图或者怎样将以前模式下的贴图转换到PBR下,就必须要清楚PBR的渲染器做了怎样的改变。
线性空间渲染使得美术不用再在高光贴图中使用漫反射的补色来获得真实的白色高光,同时PBR微表面算法中的能量守恒将使美术不用再在高光贴图中使用灰度来区分材质的粗糙(更黑)和光滑(更亮)的区域。这就意味着高光贴图通常只用包含比数值稍微复杂一点的信息(表示绝缘体的灰度等级,表示金属的色彩信息),其他的变化将交由微表面贴图来定义。
PBR metalness workflow
传统方式往往将很多东西混杂在一起去实现一个凭空想象的效果,而轮族且每个人每个公司都有自己的方式,就好比绘画一样,没有一个标准的流程和规范。
这里用一个狙击q的作品来举例(diffuse-specular-normal)。
传统贴图
传统贴图vs.PBR贴图
传统流程向PBR Specular工作流转化
1.首先,去掉漫发射贴图和高光贴图的光照信息和渐变映射信息。
2.AO/ cavity单独作为两张贴图使用到渲染器的属性凹槽中。
3.然后,将漫反射贴图适当调亮一些(参考物体的固有色)。
4.由此便能得到Albedo Map, Cavity/AO Map和Specular Map。
5.将刚才得到的高光贴图分解成一个高光贴图和一个光泽贴图(将原高光贴图中所有的表面信息移植到新建的光泽贴图中,并且更新这些值使他们符合不同材质的微表面结。再次确认这些值是否合理)。
6.当高光贴图“干净”之后,美术就能将精力集中到反射率的思考和设置上。
现在的关键点是区分物体那些部分是金属材质而哪些部分是非金属(绝缘体)材质,即便并不是在metalness 工作留下。原因非常的简单,非金属的反射一般没有颜色并且反射率一般在腊漏弊4%的线性区间(2~16%,当然除了宝石很少有非金属会大于4%)(或者sRGB 40 75)。与之相比金属的反射率则要高得多,一般介于70 100%或者sRGB 155~255)。所以分清楚所要表达的材质类型非常重要,这关乎找到正确的反射率值。
高光RGB
补充:如果金属物体被画上了或者涂上了其他的材质,那么就要作为非金属来考虑,除非是被划伤或裸露的金属材质部分。
在继续深入之前我们应该清楚MetalnessWorkflow和SpecularWorkflow的基本区别,虽然大多数引擎都会选择支持一种或两种都同时支持。
两种工作流最大的区别在于怎样在贴图中呈现Diffuse和Refectivity。例如在Specular Workflow下,这两者由明确区分的两种贴图来呈现。
而Metalness Workflow下, Albedo Map 则同时包含了Diffuse和Reflectivity的信息 ,而 Metalness Map 则用于区分金属和非金属 。这是因为金属导电,这就意味着绝大多数光子(光)会在其表面发生反射,而其余的光子则会被吸收而不是发生漫反射,所以 金属没有漫反射的概念 。相反绝缘体则会反射一小部分光(大约4%),而大部分的光则是发生漫反射或在物体表面d射从而形成均匀分布的颜色。
Metalness Map区分金属和非金属
这就意味着在Metalness Workflow下的实践中,Diffuse Map和Specular Map基本就是浪费。反过来说Metalness Workflow就更加高效,但它(在一张贴图中同时储存Diffuse 和Specular 信息)也有一个缺点,那就是在贴图中金属和非金属的过度部分会有明显的白色痕迹。
Gloss Map(光泽贴图)和Roughness Map定义了相同的信息,但通常是相反的意义。在Gloss Map中,亮色表示光滑(有光泽),而Roughness Map亮色则表示粗糙(无光泽)。在一些领域,Glossiness这个词和reflectivity同意,有人认为用Roughness更不容易造成误解。当然,重要的并不是怎么命名而是他们的数值所代表的含义。
高光工作流 vs. 金属工作流 缺点对比
当然也有些Metalness Workflow 提供了 Secondary Specular Map来对非金属的反射做更好的控制表现。
这两种工作流可根据喜好进行选择,或者说哪种容易上手就用哪种。
六、 Specular和Metalness的转换
Specular到Metalness的贴图转换
使用photoshop作为工具。
首先创建 metalnessmask:
使用图层遮罩工具, 以白色填涂金属 , 黑色填涂非金属 ,一定的 灰度表示“半金属” 、过度、划痕或者脏痕迹。
然后将图层做为Metalness Map保存。
2. 创建Albedo Map:
新建一个文件,用Diffuse Map作为背景层。
然后在其上用Specular Map创建一个图层。
并且以Metalness Map作为Specular层的蒙板层,这样就的到了合适的Albedo Map。
创建Albedo Map
Specular****到****Metalness****的贴图转换
使用Photoshop作为工具。
我们只需要将Diffuse和Specular信息在Albedo Map分离出来,作为单独的Diffuse Map和Sepcular Map。
1. 合成Diffuse Map。
2.新建文件将Albedo Map 载入Photoshop中。
3.创建一个黑色的填充层。
4.将 Metalness Map复制到填充层的图层蒙板中。
5.合成Specular Map
6.新建文件,将Albedo Map 载入Photoshop中。
7.创建一个色值为#383838的填充层。
8.将 Metalness Map复制到填充层的图层蒙板中。
9.翻转图层蒙板。
比较和说明
现在,我们可以比较两种不同的转换工作流程的有效性。
看来表现无差,说明转换理论和工作正确。
但的说明这里有个重要的前提——我们首先设置了标准合理的物理参数。如果是这个作为基础,那么转换后的效果将会有很大的不同。
而且转换工作中,Sepcular 工作流下的非金属的有色反射将在Metalness 工作流下丢失。
所以理想的情况是为自己选择的工作流制作相应的贴图,而不是仅仅依靠贴图转换来适应多套工作流。
次世代,次时代,英文:Next Generation,是指下一个时代的意思;
但是次世代游戏制作技术已经是主流的游戏制作技术了,应该叫现时代了吧,而不是次世代。
次世代以前游戏制作扮链,都是3Dmax建低模,然后拆分UV,手绘贴图。脊缺历如下图:
从图里可以樱搜看出,模型的面数是非常低的,一般几千个面,主要靠手绘的贴图来实现细节效果,有三分模型,七分贴图的说法。贴图上的光影关系都是固定的,不会随着环境的变化而变化。
而现在次世代的制作流程:3Dmax建中模,ZB雕刻高模,maya拓扑低模,mayaUV拆分,toolbag或SP烘焙贴图,SP绘制材质,八猴渲染
PBR的目标即是基于物理的渲染,游戏中角色和场景表现将更加符合物理规则,对于光照的计算也更符合现实。说人话,就是:以前的贴图是手绘上去的,光影是画死的,不会随着光照变化而变化。而PBR流程下的贴图会根据环境光照的变化而变化,更加符合物理现象,更加真实。
所以PBR流程也不是什么高深的,就是贴图的制作方式更加接近真实了。
如果一定要问PBR流程包含哪些,次世代后半部分的流程就是PBR流程:Toolbag或SP烘焙贴图,SP绘制材质,八猴渲染。
用几张图说明一下次世代的整个流程吧,希望你更能有一个清晰的认识:
ZBrush高模雕刻
高模拓扑成低模
高模烘焙后得到的几张贴图
贴图贴在低模上,呈现出高模的细节和效果
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)