顶点颜色

顶点颜色(Vertex Color)是很常见的概念,就是在模型顶点上指定的颜色。在实际情况中,由于多个面共用一个顶点,因此一个顶点的颜色取决于具体在哪个面上。由于顶点颜色数量少而产生的精度问题,顶点颜色常用于贴图、材质混合而不是直接用于模型颜色渲染。

我们有以下几种方式给模型赋予顶点颜色:

  1. 在Blender中绘制顶点颜色。
  2. 在游戏引擎编辑器中,通过笔刷绘制顶点颜色。
  3. 在代码中赋予顶点颜色。

除去第三种暂且不谈,前两种在实际应用中是非常常见的用法。

在3D建模软件中绘制顶点颜色

在3d建模软件中绘制顶点颜色常用于将不同的部位刷成不同的颜色,以便于在其它流程中方便的区分材质。绘制好顶点颜色后又有几种不同的用法:

  1. 直接导入引擎制作材质,用不同的顶点色区域应用到分层材质上。
  2. 烘焙出ID Map,用贴图采样区分区域并应用到分层材质上。
  3. 烘焙出ID Map,在Substance Painter中对材质图层应用蒙版。

ID Map可以通过Vertex Color在Blender或者Substance Painter中烘焙。也可以通过纯色材质在Blender中烘焙,可以直接烘焙成贴图,或者烘焙到Vertex Color,不过这将会造成模型具有多个材质ID,烘焙完成后需要删除,比较麻烦。

在UE4中用笔刷绘制顶点颜色

直接在引擎中用笔刷绘制颜色常见于关卡地图制作中,使用了顶点颜色来存储不同通道的图层信息。例如亮暗程度,粗糙度,图层混合Alpha值等。最常见的例子是制作路面的水坑,墙面的污泥、苔藓的混合等,配合高度图可以表现出很好的效果。