Есть ли способ заставить параметр inputSize шейдера Pixel Bender работать во Flash?

Вот фрагмент шейдера пикселя, который я использую во Flash:

parameter float2 srcSize
<
    parameterType: "inputSize";
    inputSizeName: "src";
>;

input image4 src;

Ширина и высота исходного изображения правильно заполнены в Pixel Bender Toolkit, но когда я запускаю этот шейдер в качестве фильтра в Flash Player 10, значение srcSize не заполняется автоматически.


person Stu    schedule 20.06.2011    source источник


Ответы (2)


Это потому, что инструментарий требует, чтобы вы загрузили изображение перед запуском. Поток во Flash отличается, потому что он не предполагает, что вы будете использовать изображение в качестве источника. Я почти уверен, что вам нужно установить ширину / высоту inputSize перед запуском ShaderJob на исходном изображении.

person NHubben    schedule 21.06.2011
comment
Я использую фильтр для DisplayObject, поэтому предполагается, что исходное изображение присутствует, и этот вход предварительно установлен Flash. Единственный способ заставить работать ширину и высоту - это установить их с помощью вызова DisplayObject.getBounds (). - person Stu; 22.06.2011

По-видимому, невозможно заставить flash заполнять ширину и высоту исходного изображения, вы должны сделать это самостоятельно, вызвав:

var rect:Rectangle = dispObj.getBounds(dispObj);

... а затем передайте rect.width и rect.height в параметры шейдера.

person Stu    schedule 17.07.2011