0

我正在使用 AIR + AS3 编写一个 android 应用程序。由于 GPU 模式不支持像素弯曲文件,我正在尝试将此色度键过滤器转换为纯 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 );

        }



    }

}
4

1 回答 1

1

恐怕它不会那样工作。迭代 AS3 中的每个像素可能会非常缓慢(这就是最初制作像素弯曲器的原因),在 CPU 微不足道的移动设备上更是如此(与台式机相比)。

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

八哥

羽毛界面

离开3D

于 2013-08-13T19:00:16.790 回答