0
特定の範囲内にある(PixelBenderを使用して)ターンオフするのに最適な方法は何ですか?たとえば、0x0000FFと0x00FFFFの間のすべての色をオフにします。ご協力いただきありがとうございます。これはFlashで動作する必要があります。ありがとう!Pixel Benderのカラー範囲をオフにする
特定の範囲内にある(PixelBenderを使用して)ターンオフするのに最適な方法は何ですか?たとえば、0x0000FFと0x00FFFFの間のすべての色をオフにします。ご協力いただきありがとうございます。これはFlashで動作する必要があります。ありがとう!Pixel Benderのカラー範囲をオフにする
これが最善の方法かどうかはわかりませんが、 Pixel Benderの色の値をシミュレートすることです。
evaluatePixel()
{
float4 color = sampleNearest(src,outCoord());
float minInt = 0.0;
if(minColor.r > 0.0) minInt += minColor.r + 3.0;
if(minColor.g > 0.0) minInt += minColor.g + 2.0;
if(minColor.g > 0.0) minInt += minColor.b + 1.0;
float maxInt = 0.0;
if(maxColor.r > 0.0) maxInt += maxColor.r + 3.0;
if(maxColor.g > 0.0) maxInt += maxColor.g + 2.0;
if(maxColor.g > 0.0) maxInt += maxColor.b + 1.0;
float colInt = 0.0;
if(color.r > 0.0) colInt += color.r + 3.0;
if(color.g > 0.0) colInt += color.g + 2.0;
if(color.g > 0.0) colInt += color.b + 1.0;
if(colInt >= minInt && colInt <= maxInt)
{
dst = float4(0.0);
}else{
dst = color;
}
}
チャネル間の「間」を意味する場合は、ここで簡単に行うことができます。
<languageVersion : 1.0;>
kernel untitled
< namespace : "Your Namespace";
vendor : "Your Vendor";
version : 1;
>
{
input image4 src;
output pixel4 dst;
parameter float rThreshold
<
minValue: 0.0;
maxValue: 1.0;
defaultValue: 0.0;
>;
parameter float gThreshold
<
minValue: 0.0;
maxValue: 1.0;
defaultValue: 0.0;
>;
parameter float bThreshold
<
minValue: 0.0;
maxValue: 1.0;
defaultValue: 0.0;
>;
void
evaluatePixel()
{
pixel4 sourcePixel = sampleNearest(src,outCoord());
if(sourcePixel.r <= rThreshold) sourcePixel.r = 0.0;
if(sourcePixel.g <= gThreshold) sourcePixel.g = 0.0;
if(sourcePixel.b <= bThreshold) sourcePixel.b = 0.0;
dst = sourcePixel;
}
}
@seanありがとうございました。私は色の数値に基づいて範囲を設定しなければなりませんでした。 –