iPhoneФорумПроекты

AIR и шейдеры

#0
7:16, 6 апр 2012

В своей флешке использую шейдер для генерации анимации концентрических кругов. На компе флешка работает исправно, но когда я запаковываю её и залифаю на устройство, на нём она начинает глючить - не генерирует нифига.
Кто работает с air на айфоне, подскажите, может там он не держит шейдеры? Или их надо каким-то особым образом составлять/компилировать?
Вот код шейдера (параметры я отключил на всякий случай):

<languageVersion : 1.0;>

kernel NewFilter
<   namespace : "Your Namespace";
    vendor : "Your Vendor";
    version : 1;
    description : "your description";
>
{
    input image4 src;
    output pixel4 dst;
    /*parameter pixel3 col;
    parameter float2 apos;
    parameter float disp;*/
    
    void
    evaluatePixel()
    {
        const float3 col = float3(1,0,0);
        const float2 apos = float2(0,0);
        
            float pos = length(outCoord()-apos);
            float ex = sin(pos * .2 /*- disp*/) + 0.4; 
            if(ex<0.1)ex = 0.1;
            dst.rgb = col*ex;
            dst.a = 1.0;
    }
}
#1
11:11, 6 апр 2012

Только только буквально вчера впилили поодержку Stage3D для IOs нужно скачать RC нового AIR из Adoby Labs

#2
13:01, 6 апр 2012

JKot
А умножение слоя тоже не поддерживает? Сейчас попробовал получить тот же эффект путём создания поверх нужной графики мувиклипа со специально подобранным градиентом и установления для этого мувиклипа режима наложения "умножение". На компе рисуются прекрасные волны, а на айфоне всё выглядит как будто этот градиент накладывается в обычном режиме.
----
У меня AIR 3.2. Адобе там что, успела уже 3.3 выпустить?
-----
И действительно. Сейчас скачаю бету, попробую.
-----
Скомпилировал прогу с новым СДК - эффекту ноль.

#3
15:40, 6 апр 2012

whatson
В gpu mode нет, не поддерживается. Для начала попробуйте выяснить в каком режиме запускается програ. Во флеш это Stage.wgpumode, про Air знаю только то, что он похож на flash)

#4
9:38, 7 апр 2012

JKot
Да, действительно. Прога запускалась в режиме gpu. Поставил direct и вариант без шейдеров заработал. Ура!

#5
10:46, 7 апр 2012

direct это режим с поддержкой Stage3D в этом режиме должен работать шейдера. На счет режимов наложения я не знаю.
cpu - собственно рендер будет на cpu, будут  доступны все режимы наложения, шейдеры - нет.
gpu - это cpu, только частично ускоренный на gpu. Самые скудные возможности. Нет большинства режимов смешивания и нет поддержки шейдеров.

#6
11:18, 7 апр 2012

JKot
Ну на сайте адобе было упомянуто включение аппаратного ускорения через директиву gpu, ну я и использовал его. Как вижу зря.

iPhoneФорумПроекты

Тема в архиве.