将像素弯曲器转换为AS3

时间:2013-08-13 13:35:12

标签: android actionscript-3 air gpu pixel-bender

我正在使用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 );

        }



    }

}

1 个答案:

答案 0 :(得分:1)

我担心它会不会这样。迭代AS3中的每个像素可能会非常缓慢(这就是为什么像素弯曲机最初制造的原因),在移动设备上更是如此,它们具有微不足道的CPU(与台式机相比)。

我建议你研究Stage3D,它利用图形卡来完成繁重的工作(几乎是在移动设备上实现闪亮性能的唯一方法)以及基于它的各种框架。 Starling用于2D图形,Feathers用于UI(基于Starling),Away3D用于完整的3D内容。这就是现在的势头,特别是在移动领域。 Stage3D支持各种混合模式和过滤器,可以帮助您轻松实现您所需的功能。不幸的是,将旧学校显示列表应用程序转换为Starling并非易事,但恕我直言,这是值得的。

Starling

Feathers UI

Away3D