Собственно экспрешшен
(r+g+b)!=(r2+g2+b2)?(abs(r2-r)+abs(g2-g)+abs(b2-b)):0
можешь сам дальше додумать, например давать не точное соответствие, а, типа так:
abs((r+g+b)-(r2+g2+b2))<(сюда можно local variable повесить и рулить процессом)?1(просто и тупо - 1, маска в этом случае будет грубая):0
Вот тестовый скрипт, в "идеальных" условиях пашет, для реальных условий надо, конечно рихтовать.
PS Хотел у ребят на Хайенде поспрошать, тема то действительно полезная, но Хайенд который день в дауне, мож кто знает что там у "Большого Вилли" стряслось?
Checker1 = Checker(720, 486, 1, 32, xSize);
Color1 = Color(720, 486, 1, 1, 1, 0, 1, 0);
Over1 = Over(Color1, Checker1, 1, 0, 0);
QuickShape1 = QuickShape(720, 486, 1, 0, 0, 0, 1, 1, xScale,
width/2, height/2, 0, 0.5, 0, 128, 144, 171, 1, 0, 1, 0,
1, 1, 252, 351, 1, 0, 1, 0, 1, 1, 494, 321, 1, 0, 1, 0, 1,
1, 526, 214, 1, 0, 1, 0, 1, 1, 404, 128, 1, 0, 1, 0, 1, 1,
266, 89, 1, 0, 1, 0, 1, 1);
SetAlpha2 = SetAlpha(Checker1, 1);
Mask(Color1, QuickShape1, "A", 100, 0, 1);
SetAlpha1 = SetAlpha(Over1, 1);
LayerX1 = LayerX(SetAlpha1, SetAlpha2, r, g, b, (r+g+b)!=(r2+g2+b2)?(abs(r2-r)+abs(g2-g)+abs(b2-b)):0,
z);
// User Interface settings
SetKey(
"nodeView.Checker1.x", "301.25",
"nodeView.Checker1.y", "273.5",
"nodeView.Color1.x", "186.25",
"nodeView.Color1.y", "273.5",
"nodeView.LayerX1.x", "331.75",
"nodeView.LayerX1.y", "66.5",
"nodeView.Over1.x", "247.25",
"nodeView.Over1.y", "204.5",
"nodeView.QuickShape1.x", "65",
"nodeView.QuickShape1.y", "338.75",
"nodeView.SetAlpha1.x", "217.25",
"nodeView.SetAlpha1.y", "135.5",
"nodeView.SetAlpha2.x", "392.25",
"nodeView.SetAlpha2.y", "135.5"
);