1

私は問題を抱えていて、本当に迷惑になっています。単純な を使用して画像内のすべてのピクセルの色を返したいのですが、単純Shaderにスクリプトを に割り当てるのShaderは難しいことがわかりました。私は PixelBender スクリプトを知りませんし、この単純な機能にのみ使用したいのであまり勉強するつもりはありませんが、例からこの単純なスクリプトを作成しました:

<languageVersion : 1.0;>

kernel PixelColourShader
<   namespace : "puggsoy";
    vendor : "Puggsoy";
    version : 1;
>
{
    input image4 src;
    output pixel4 dst;

    void
    evaluatePixel()
    {
        dst = sampleNearest(src, outCoord());
    }
}

ロードをテストするために作成した簡単な AS3 スクリプトを次に示します。

package 
{
    import flash.display.Shader;
    import flash.display.Sprite;
    import flash.utils.ByteArray;

    public class Main extends Sprite 
    {
        [Embed(source = "PixelColourShader.pbj", mimeType = "application/octet-stream")]
        private var PixelColourShader:Class;

        private var shader:Shader;

        public function Main():void 
        {
            shader = new Shader(new PixelColourShader() as ByteArray);
        }

    }

}

私は数多くの例を見てきましたが、これが正しいロード方法であると確信しています。ただし、実行時に常に次のエラーが発生します。

[Fault] exception, information=ArgumentError: Error #2004: One of the parameters is invalid.

理由がわかりません。私が見ることができるパラメータは完全に有効です。

Flex 4 SDK を使用して、FlashDevelop を使用して AIR アプリケーションでこれを作成しています。

4

2 に答える 2

0

テキスト ファイルをバイナリ pbj にコンパイルするには、Adobe Pixel Bender などを使用する必要があります。

于 2014-12-01T19:22:01.080 に答える
0

これを試して:

var shaderShader = new Shader();
 shader.byteCode = new PixelColourShader();
于 2013-01-19T13:48:16.173 に答える