要想在混合权重设置中处理5个纹理,你需要创建一个类似于这样的材质:
该材质的工作原理和3路及4路材质的设置类似。但是,现在我们取1减去Alpha值来获得第5种颜色。具体情况如下:
- 每个颜色通道(ARGB)有其各自的线性插值表达式。
- 添加一个额外的Lerp,由1减去顶点颜色节点的Alpha值后所得的值驱动。这将是第5种颜色。
- 每个纹理插入对应Lerp节点的B输入端。
- 与纹理1对应的Lerp连接到材质中,并且其Alpha将由顶点颜色中的Alpha通道驱动。
- 与纹理2对应的Lerp连接到与纹理1对应的Lerp的A输入端,并且其Alpha将由顶点颜色中的红色(Red)通道驱动。
- 与纹理3对应的Lerp连接到与纹理2对应的Lerp的A输入端,并且其Alpha将由顶点颜色中的绿色(Green)通道驱动。
- 与纹理4对应的Lerp连接到与纹理3对应的Lerp的A输入端,并且其Alpha将由顶点颜色中的蓝色(Blue)通道驱动。
- 与纹理5对应的Lerp连接到与纹理4对应的Lerp的A输入端,并且其Alpha将由1减去顶点颜色中的Alpha驱动。
- 纹理1还会环绕回来,连接到第5个即最后一个Lerp的A端。这样纹理1就成了默认纹理。
设置完毕之后, 网格体权重绘制工具(Mesh Weight Painting Tool) 应该会处于活动状态,并且 纹理权重类型(Texture Weight Type) 设置应该会设为 ARGB - 1(五纹理)(ARGB -1(Five Textures)) 。
下面是此材质的示例,首先在RGB模式下查看网格体,显示设置好的顶点颜色。请注意,在此设置中, Alpha (显示为黑色)对应纹理1, 红色 对应纹理2, 绿色 对应纹理3, 蓝色 对应纹理4。顺便提一下,Alpha也用于纹理5,也在底部显示为黑色。
最终效果如下:
请注意,第一张图中顶点颜色为黑色(纹理1)的地方没有变化。这是因为纹理1也连入了第四个Lerp表达式的A输入端(参见上文),使其成为了默认纹理。从本质上讲,你以纹理1为起始点,可以根据需要在其上面绘制纹理2、3、4,或随时在后三者之上重新绘制纹理1。
如果你要反复设置这种材质,那么最好部署一个自定义材质函数。