2013-08-13 6 views
0

Я пишу приложение для Android, используя AIR + AS3. Так как файлы пиксельных пикселов - not supported в режиме GPU, я пытаюсь преобразовать этот фильтр цветности в чистый 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-графики, Perather для UI (основанный на Starling), Away3D для полномасштабного 3D-материала. Вот где сейчас импульс, особенно на мобильных устройствах. Stage3D поддерживает различные режимы и фильтры смешивания, которые могут помочь вам легко достичь того, что вы ищете. К сожалению, преобразование старого списка отображения школьного приложения в Starling не является тривиальным, но ИМХО это того стоит.

Starling

Feathers UI

Away3D

+0

Да, наверное AGAL следует использовать для такого шейдера. Но я не знаю, работают ли шейдеры AGAL на мобильных телефонах. (Вероятно, да) – Vesper

+0

Да, они работают. Фильтры Starling - это программы AGAL, ​​и они творят чудеса, даже на мобильных устройствах. – jpop

+0

Спасибо, я посмотрю –