之前编写的解释性文档,归档发布;
在传统贴图中,以BaseColor贴图为例,我们将几乎所有纹理信息都集中到一张贴图上,比如下图中,就有金属、皮革和布料等各种质感的纹理信息:
![](https://i-blog.csdnimg.cn/blog_migrate/ce731edfe71560b933cc82ea480ca93b.png)
即使是4K的贴图,这些纹理均摊在不同的部件上,最终体现出来的像素精度还是不甚理想:
![](https://i-blog.csdnimg.cn/blog_migrate/2a6a1c718c1b9567b2673b87e09ae51b.png)
远看大效果还可,但如近距离观看就会发现其比较粗糙;
其它的NormalMap等同理,比如一些细节Normal纹理,在一张贴图中均摊在大量部件上,其像素精度也并不会很高:
![](https://i-blog.csdnimg.cn/blog_migrate/96a0c615097c8712ed2e64ccd0cc6025.png)
那么,新的分层材质流程中,会用以下方式来最大化贴图的精度(分层材质主要是在身体的衣服装备上使用,暂不用在其它部分);
首先,利用Mask把身体上各个不同的材质分开,比如金属部分的Mask(注意不同的金属也视为不同材质):
![](https://i-blog.csdnimg.cn/blog_migrate/760ae62b04ee2a16ce69afe627d1dd8f.png)
其它皮革、布料同理,利用RGB/A通道合成为一张Mask(也就是说一张Mask可以区分4种不同材质):
![](https://i-blog.csdnimg.cn/blog_migrate/e501bcdc77858fecbf90e8c32a12c6e5.png)
以这些不同的Mask为ID,在材质中编写逻辑,让其去一一对应不同的分层材质纹理;这里的所谓分层材质,是一个个完全由四方连续的Tiling贴图所组成的单一高精度材质,一般被封装为Material Function来方便使用:
![](https://i-blog.csdnimg.cn/blog_migrate/63c3edeb43dbf74d20e25d90001abf9b.png)
这样,就可以归纳出重复材质、单独的制作不同的高精度金属、布料和皮革等等并单独维护;材质制作也由以前传统的重复制作相同材质转为“拼装”不同的分层材质;
具体来说,以角色身体装备为例,除了以上最重要的“ID Map”,还有需要单独独立出来交代基本光影遮罩关系的AO Map:
![](https://i-blog.csdnimg.cn/blog_migrate/73baf5d96ab8d91e2e6b6b3e29a189b4.png)
注意,这张AO以及没有细节纹理的AO信息了,只有大的结构关系;同样,NormalMap也同理,再不需要上文中所展示的Normal Map中的纹理Detail:
![](https://i-blog.csdnimg.cn/blog_migrate/2c24ba6a8f6a5e695b6f1cc02bc138bd.png)
由于材质属性被分在了具体的不同分层材质中,那么只需要各个部分的刮痕、磨损信息Mask,以上图中皮革、布料部分的磨损为例,会用以下Mask表示:
![](https://i-blog.csdnimg.cn/blog_migrate/7dd62b10fbab9f57d758e8e153a1e3db.png)
注意不同材质的磨损等信息是可以画在一起的,因为可以使用ID Map来区分;
同理也可以把各种刮痕、磨损Mask按RGB/A通道合成为一张Mask(Damage Mask):
![](https://i-blog.csdnimg.cn/blog_migrate/344aab35ebcbf4dad3a695d8118e082c.png)
以上的信息,再叠加到单独制作好的,如皮革的分层材质:
![](https://i-blog.csdnimg.cn/blog_migrate/12cdf45d28d3d3090a17f3aa1e46e190.png)
最终会达成即有高精度,又有相关独特信息(破损、Normal等独有信息)的效果:
![](https://i-blog.csdnimg.cn/blog_migrate/8f5dd889e75689fcbd5fc56ee55813ab.png)
综上所述,我们把角色装备服装的材质分为两大部分,一部分是角色的独有信息(ID Map、AO Map、NormalMap以及Damage Mask),另一部分是各种归纳好的、不同材质的分层材质;