Я не знаком с Pixel Bender, но полагаю, что проблема в том, что последние два аргумента троичного оператора ?:
должны быть одного типа:
A = condition ? B : C
B
и C
должны иметь тот же тип, который должен быть того же типа, что и A
. В этом случае похоже, что вы пытаетесь сделать float4
с, поэтому вы должны сделать:
dst = (distance(current.rgb, color) < threshold) ? float4(0.0) : current;
Так что оба последних аргумента (float4(0.0)
и current
) имеют тип float4
.