美術mask圖規則
建築的部件id為1,2,3,依次類推
原圖
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAnYldHL0FWby9mZvwFN4ETMfdHLkVGepZ2XtxSZ6l2clJ3LcV2Zh1Wa9M3clN2byBXLzN3btgHL9s2RkBnVHFmb1clWvB3MaVnRtp1XlBXe0xCMy81dvRWYoNHLwEzX5xCMx8FesU2cfdGLwMzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsQTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SN3ATOzIWN5kzNjRmY4AjNzYzX0QDMwETMxAzLcFTMyIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjLyM3Lc9CX6MHc0RHaiojIsJye.png)
mask圖,例如,mask為純黑色背景,色塊為要遮罩的區域。最多支援1個建築7個部件調整顔色
合并後效果
這幾個區域會根據色相改變
部件ID對應maskrgb的色塊表
shader流程
//HSV空間轉化
half3 colorHSV = RGB2HSV(col);
colorHSV.y *= _Saturability;
colorHSV.z += _Lightness;
half bias = 0.1;
int maskIdx = (int)(step(bias, mask.b)
+ step(bias, mask.g) * 2
+ step(bias, mask.r) * 4);
//colorHSV.x += GetHue(_listHue[maskIdx]);
if (maskIdx == 0)
{
colorHSV.x += GetHue(_Hue0);
}
else if (maskIdx == 1)
{
colorHSV.x += GetHue(_Hue1);
}
//HSV空間轉化
half3 colorRGB = HSV2RGB(colorHSV);
fixed4 color = fixed4(colorRGB,col.a) * col.a;
return fixed4(color.rgb,col.a);