‘Pixel Bender’ タグのついている投稿

Pixel Benderメモ

2009.10.05 10:05 PM

Flash Player 10でサポートされているカスタムフィルタ(ピクセルシェーダ)を作成できるツール、Pixel Bender Toolkitのメモ。

Pixel Benderは、Adobe Flash Player 10、Adobe After Effects等がサポートするグラフィックス処理エンジン。
Pixel Benderの言語は、3Dレンダリングピクセル描画処理の最適化に用いられる、フラグメントシェーダ言語(GLSL:OpenGL Shading Languageなど)に基づいて開発されているとのこと。Flash Playerでは、このPixel Benderのプログラムを利用してフィルタやブレンド、面または線の塗りを独自に作成することができる。

Pixel Bender Toolkitで新規Filterファイルを作成すると、以下のようなデフォルトのソースが生成される。

以下、ざっくりメモ。
・Parameterを定義すると、実行したときにツールの右側エリアにスライダーが表示されて動的にパラメータを変更できるようになる。
・inputは入力画像を宣言するキーワード。
・outputは出力するピクセル色を宣言するキーワード。
・実際のシェーダーの処理はevaluatePixelメソッド内に記述。このメソッドで指定した処理が、
描画領域の全ピクセルに対して実行される仕組みになっている。
・outCoordメソッド : 処理中のピクセルのグローバル座標を返す。
・sampleNearestメソッド : サンプリングメソッド。入力画像の所定の座標に最も近いピクセルのチャンネル値が含まれたベクトルを返す。戻り値はfloat4型で、それぞれrgbaにてアクセスできる。第一引数に入力画像、第二引数で位置を指定。戻ってきた値をoutput変数に割り当てるのが一般的な処理の流れ。
・distanceメソッド: 2点間の距離を算出。
・float3x3型は行列データ型。asのMatrixクラスみたいなもの。
・Flashで使用する場合、ループ処理、配列、カスタム関数は使用できない。
・浮動小数点数を記述する際には、必ず小数点まで記述しなければならない。
・Flashで使用するには、.pbjという形式のバイトコードデータとして書き出してFlashで読み込むもしくは埋め込む。
・どうやらFlash Player 10ではまだGPU機能が有効になってない模様。なんじゃそれって感じ。早く対応してほしい。