Преобразование пиксель-бендера в AS3

Я пишу приложение для Android, используя AIR + AS3. Поскольку файлы пиксель-бендера не поддерживаются в режиме графического процессора, я пытаюсь преобразовать этот фильтр хроматических ключей в чистый 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 ответ

Решение

Боюсь, это не сработает. Итерации по каждому пикселю в AS3, вероятно, будут мучительно медленными (именно поэтому изначально был сделан пиксель-бендер), особенно в мобильных устройствах с маленькими процессорами (по сравнению с настольными компьютерами).

Я бы посоветовал вам взглянуть на Stage3D, который использует графическую карту для тяжелой работы (практически единственный способ добиться приличной производительности при использовании флэш-памяти на мобильных устройствах) и различные платформы на ее основе. Starling для 2D-графики, Feathers для пользовательского интерфейса (на основе Starling), Away3D для полноценного 3D-материала. Вот где импульс сейчас, особенно на мобильном телефоне. Stage3D поддерживает различные режимы наложения и фильтры, которые могут помочь вам легко достичь того, что вы ищете. К сожалению, преобразование приложения со списком отображения старой школы в Starling не является тривиальным, но ИМХО оно того стоит.

Скворец

Интерфейс Перья

Away3D

Другие вопросы по тегам