我正在使用AIR + AS3编写Android应用程序。由于像素弯曲文件在GPU模式下是not supported,我正在尝试将此色度键过滤器转换为纯AS3。任何建议,工具或帮助将不胜感激:
<languageVersion : 1.0;>
kernel DifferenceKey
< namespace : "com.quasimondo";
vendor : "Quasimondo";
version : 1;
description : "A simple difference key for chroma keying";
>
{
input image4 src;
output pixel4 dst;
parameter float3 keyColor;
parameter float tolerance
<
minValue: 0.0;
maxValue: 3.0;
defaultValue: 0.02;
>;
parameter float ramp
<
minValue: 0.0;
maxValue: 1.0;
defaultValue: 0.005;
>;
parameter float gamma
<
minValue: 0.0;
maxValue: 10.0;
defaultValue: 1.00;
>;
void
evaluatePixel()
{
dst = sampleNearest(src,outCoord());
float diff = length( dst.rgb - keyColor );
if ( diff < tolerance )
{
dst.a = 0.0;
} else if ( diff < tolerance + ramp )
{
dst.a = pow( (diff - tolerance) / ramp, gamma );
}
}
}
答案 0 :(得分:1)
我担心它会不会这样。迭代AS3中的每个像素可能会非常缓慢(这就是为什么像素弯曲机最初制造的原因),在移动设备上更是如此,它们具有微不足道的CPU(与台式机相比)。
我建议你研究Stage3D,它利用图形卡来完成繁重的工作(几乎是在移动设备上实现闪亮性能的唯一方法)以及基于它的各种框架。 Starling用于2D图形,Feathers用于UI(基于Starling),Away3D用于完整的3D内容。这就是现在的势头,特别是在移动领域。 Stage3D支持各种混合模式和过滤器,可以帮助您轻松实现您所需的功能。不幸的是,将旧学校显示列表应用程序转换为Starling并非易事,但恕我直言,这是值得的。