![]() |
|
||||||||||
|
|||||
|
Вопрос, как правильно организовать работу шейдера с вектором(в документации толком об этом не нашёл, везде работа с изображением).
Ну к примеру такая тривиальная задача: Получить аналог такой операции в шейдерах var v1:Vector.<Number>; var v2:Vector.<Number>; var k1:Number; var k2:Number; var i:int; v1=new Vector.<Number>(100,true); v2=new Vector.<Number>(100,true); k1=0.1; k2=0.4; for(i=0;i<100;i++) v1[i]=i; for(i=0;i<100;i++) //вот этой v2[i]=k1*(v1[i]-k2); Мой вариант: <languageVersion : 1.0;>
kernel VectorShader
< namespace : "Your Namespace";
vendor : "Your Vendor";
version : 1;
description : "your description";
>
{
input image1 src;
output pixel1 dst;
void
evaluatePixel()
{
dst = 0.1*(sampleNearest(src,outCoord())+0.4);
}
}
Цитата:
Как быть? |
|
|||||
|
Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
|
Записывать нули на остальных каналах.
На выход Bender не умеет отдавать ничего кроме картинок, не был он рассчитан для флеша. Т.е. им ничего не посчитать(такой же скриптовый язык, только второй поток для флеша, больше толку нет в рассчётах), взгляните лучше в сторону алхимии если уж есть желание 4мс превратить в 3.5мс ![]() |
|
|||||
|
Сделал по 3. но поскольку мне других данных не надо, то в шейдер работает в "холостую". Вот нашёл статейку-пример на эту тему. Работает пока шейдер в разы медленней чем простой цикл с просчётом для кажого элемента..
|
|
|||||
|
В доках сказано что PixelBender поддерживает только 3-4 выходных канала...
Цитата:
|
|
|||||
|
Разобрался я примерно с работой Pixel Bender'а. Я так понял на вход можно подавать совершенно различные изображения, любой размерности(неодинаковые и не зависящие от выхода) и в любом количестве(даже ни одного).
Так вот, есть задача в BitmapData построить metaball'ы как пока я понимаю, на вход надо подать параметр радиус и вектор типа image2 с координатами центров шаров. но pixel bender не даёт возможности пробежаться по всем шарам входного вектора и для каждого пикселя выхода занести в него именно сумму функций скажем 50 меташаров... как выкрутиться в такой ситуации? |
|
|||||
|
Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
|
Цитата:
Производительность возможно и чуть повыше будет, но писать в ByteArray 1к значений на каждую итерацию, и собственно вызов чего-то инородного, убивают эту производительность. Ответ - удалить наработки ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 14:12. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| pixel bender |
|
|