Вопрос, как правильно организовать работу шейдера с вектором(в документации толком об этом не нашёл, везде работа с изображением).
Ну к примеру такая тривиальная задача:
Получить аналог такой операции в шейдерах

Код AS3:
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);
интересует правильный код pixel bender'а.
Мой вариант:

Код:
<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);
}
}
компилятор Pixel Bender'а ругается вот такими словами на эту строку dst = 0.1*(sampleNearest(src,outCoord())+0.4);
Цитата:
|
ERROR: (line 16): 'dst' : cannot have 1 or 2 channel outputs
|
но мне не нужно 3 канала в output'е!
Как быть?