在HMI设计中,车模作为主要的展示对象,使用较高的面数和精细的材质去表现视觉效果是无可厚非的。但是随着面数和材质的提高,工程的开销会越来越大,这样会导致项目落地时帧数过低,负责优化的同学压力也会大大增加。作为美术端的设计人员,我们可以在前期准备工作的时候,通过一些方法在保证视觉不打折扣的前提下去减少开销。
1.顶点色
1.1 顶点色的定义
顶点颜色:就是在模型顶点上指定的颜色。在实际情况中,由于多个面共用一个顶点,因此一个顶点的颜色取决于具体在哪个面上。由于顶点颜色数量少而产生的精度问题,顶点颜色常用于贴图、材质混合而不是直接用于模型颜色渲染。
1.2 顶点色的运用
通常情况下,我们会在同一活动部件下使用顶点色去区分不同的材质,将不同材质填充不同颜色,然后再用一个材质球去覆盖整个活动件。在模型导入UE之后,将顶点色区域提取出来,作为遮罩使用,再分别去给上不同的质感。这样就可以使用一个材质球去实现多个材质球的视觉效果,能够大大减少材质的开销。如图1.1.1右侧的模型顶点色所示:红色填充轮胎,绿色填充轮毂,蓝色填充刹车片等等,但实际上整个轮胎仅仅使用了一个材质。
一般情况下,使用数值为0或者1组成的纯色来填充,有(1,0,0)的纯红色;(0,1,0)的纯绿色;(0,0,1)的纯蓝色;(1,1,0)的纯黄色;(0,1,1)的纯青色以及(1,0,1)的纯紫色这六种。使用0或1的数值目的是为了清晰地区分区域,如果使用0-1之间的数值,则该区间会出现多种质感混淆的问题。
像车漆和玻璃这种特殊的材质类型不在顶点色的考虑范围内。
1.3 顶点色与Mask贴图
顶点色的做法与PBR流程上的Mask遮罩贴图作用很相似,但两者都各有优劣。
顶点色:可以沿着顶点精准地区分材质;
一个材质球可以具备6个Mask;
不需要对UV进行任何处理,流程上更为简洁;
不需要增加额外的贴图素材,进一步减少内存占用。
缺点是无法做到在一个面之间划分两个材质,有一定的限制性。
Mask贴图:根据UV的分布去处理遮罩的范围,不受模型结构的影响;
一般用于提取材质中的一部分单独控制,例如提取外饰材质里的车漆材质做变色车漆,不会用来做节省材质数量。
缺点是会增加贴图,占用内存;
如果贴图清晰度不够会导致遮罩边缘处存在像素格;
对UV的分布要求较高。
2.处理顶点色
2.1 模型预处理
将模型的材质划分好之后,在Blender导入模型。我们以一个轮胎为例,进行顶点色制作。
合并轮胎模型,可以在材质属性的页面看到已经划分好的轮胎材质。
2.2 模型上顶点色
进入编辑模式之后,在材质属性页面下会多出一栏选择项。我们选择其中一个材质,点击选择将材质覆盖的面全部选中。
保持选中的状态,将编辑模式切换到顶点绘制,这时候模型会呈现整个灰色的状态,但其实刚刚的面,还是选中的状态只是不显示。
此时选择顶点绘制模式右侧的遮罩,会看到选中的模型仍然保持灰色的状态,但是未选中的轮毂的部分则会显示出模型的布线。
选用颜色如1.2的内容所言,用数值为0或者1组成的纯色来填充。选择好颜色之后,在图像绘制中选择设置顶点色,这样就能将选中的颜色覆盖上选中的面了。
接下来重复操作,用不同颜色给不同区域附上顶点色,最后再用一个材质球将上好顶点色的模型覆盖掉。如果是模型的材质较多,需要六个以上的材质,可以使用两组以上的顶点色,最后使用两个以上的材质球去覆盖。
3.使用顶点色
3.1 模型导入
模型导入UE只需要记住在定点颜色导入选项中选择“替换”,这样便会将做好的模型顶点色导入的UE中。
导入模型之后我们可以双击点开模型,选中“定点颜色”,检查制作的顶点色是否正确导入到UE中。
3.2 调用顶点色
创建材质函数,在材质函数中编写简单的遮罩提取公式。
3.3 运用顶点色
顶点色提取出遮罩之后,用法与Mask贴图/PS的蒙版完全一致,只需要将遮罩乘以遮罩内部的颜色,常数等数据,然后再输出即可。多个区域的遮罩可以使用“add”节点将相同的数据添加到一起输出。
提取红色的Tire遮罩,与做好的轮胎固有色相乘,输出到材质球的basecolor通道上。我们可以看到顶点色红色的部分输出了轮胎的材质,而其他地方保留了默认材质球黑色的效果。
同样的方式,我提取蓝色的Brakedisc 遮罩与做好的刹车盘固有色相乘,将刹车盘的固有色输出直接链接到材质球的basecolor通道,可以得到刹车盘单独输出的效果。
我们使用“add”节点,将轮胎和刹车盘的固有色合并到一起,再输出。
剩下的就是按照同样的思路去处理各个遮罩层以及各个通道的输出即可。
再给大家分享一个小技巧:在编辑多个节点的时候,我们可以通过框选多个节点,使用快捷键C 创建备注方框,通过给方框备注内容管理节点。
本篇笔记记录了小怿同学对顶点色的认识,并对比常规PBR流程Mask贴图各自的优劣势所在,同时描述了在blender制作顶点色,在UE里对顶点色调用以及运用的过程。旨在HMI视觉设计的同学能帮助减少开发的性能优化压力。如果想了解更多关于Unreal HMI 3D解决方案的信息,欢迎随时联系小怿mkt@eptcom.com。