▼AIF Toolkitメモ▼
AIF Toolkit
AIF Toolkit
「AIF(Adobe Image Foundation) Toolkit」とは、「Flash Player 10」用の自作フィルターを作成するためのツール。「Hydra」と呼ぶ画像処理用のプログラミング言語を利用する。GLSLベースでハードウェアに依存しない。マルチコア、マルチプロセッサ、GPUを利用した最適化も行う。
システム要求
WindowsMacintosh
- Pentium 4以降
- 512 MBのメモリ
- 50 MBのディスク領域
- Windows XP SP2以降
- 以下で紹介するビデオカード
ビデオカード
- G4/G5/Intel Processor
- 512 MBのメモリ
- 80 MBのディスク領域
- OS X 10.4.10以降
- 以下で紹介するビデオカード
現在のバージョンではGPUが必須だが、将来的にはソフトウェアベースのレンダリングも予定している。
メーカー シリーズ モデルナンバー NVIDIA QuadroFX Series FX 5500 SDI, FX 4500 SDI, FX 5600, FX 5500, FX 4600, FX 4500 X2, FX 4500,
FX 4400 (discontinued, replaced by the FX 4500), FX 4000 SDI, FX 3500,
FX 3450, FX 1700, FX 1500, FX GO 1400, FX 1400, FX 1300, FX 570, FX 560,
FX 550, FX 540, FX 370, FX 3508 Series GeForce 8800 GTS/GTX/Ultra, GeForce 8600M GT, GeForce 8500 GT 7 Series GeForce 7950 GT/GS, GeForce 7900, GeForce 7800, GeForce 7600,
GeForce 7300, GeForce 7200 GS, GeForce 71006 Series 6800 Ultra, 6800 GT, 6800 GS, 6800, 6800 XT, 6600, 6500, 6200,
6200 TurboCache, 6200 LE, 6100, 6150AMD/ATI Radeon HD2000 Series HD2900, HD2600, HD2400 Radeon X1000 Series X1950, X1900, X1800, X1650, X1600, X1300, "All In Wonder" X1900 (X1900 GPU),
"All In Wonder" 2006 PCI Express cards (Based on X1300 GPU)FireGL Avivo PCI Express, V8650, V8600, V7600, V5600, V3600, V3300, V3400,
V5200, V7200, V7300, V7350
情報源
情報 AIF Toolkit Hydra Filter Gallery Tutorial
開発ツール
AIF Toolkit
Adobe Labsよりダウンロードし解凍する。Setup.exeが出現するので実行し、インストーラの指示に従ってインストール。
チュートリアル
ステップ1 AIF Toolkitの起動
スタートメニューからAIF Toolkitを起動する。
画面は3つのエリアに分かれている。
エリア 説明 イメージビューセクション(左上) フィルタ結果を表示するエリア。
フィルタが実行してない時は、
メニュー「File→Load Image 1」で読み込んだ画像ファイルをそのまま表示。Hydraソースエディタ(左下) Hydraソースコードを編集するエリア。 フィルターパラメータUI(右) ユーザー指定パラメータを指定すると、
そのパラメータを制御するUIを自動配置するエリア。
ステップ2 画像ファイルの読み込み
メニュー「File→Load Image1」でフィルタをかける元となる画像ファイルを選択。
読み込み可能な画像ファイルはPNG/JPEG/OpenEXR。
ステップ3 Hydraソースコードの編集
メニュー「File→New Hydra Filter」を選択し、新規Hydraフィルタを生成。
Hydraソースコードの雛形が生成される。
Hydraソースコードを編集し、入力イメージのチャネルを全て半減させる。
以下のコードを以下のように変更。
dst = sampleNearest(src,outCoord());
dst = 0.5 * sampleNearest(src, outCoord());
ステップ4 フィルタの実行
Runボタンを押してフィルタをかけた結果を表示。
ステップ5 イメージチャネルの分割
イメージチャネルを分割しα値以外を半減させるには次のように記述。
以下のコードを以下のように変更。
dst = 0.5 * sampleNearest(src, outCoord());
float4 inputColor = sampleNearest(src, outCoord());
dst.rgb = 0.5 * inputColor.rgb;
dst.a = inputColor.a;s
ステップ6 フィルタ操作を露出に変更
フィルタ操作を露出に変更するには次のように記述。
以下のコードを以下のように変更。
dst.rgb = 0.5 * inputColor.rgb;
dst.rgb = pow(inputColor.rgb, float3(0.5));
ステップ7 露出の値をパラメータとして指定
露出の値をパラメータとして指定するには次のように記述。
以下のコードをevaluatePixel関数の前に記述。
parameter float exposure;
以下のコードを以下のように変更。
dst.rgb = pow(inputColor.rgb, float3(0.5));
dst.rgb = pow(inputColor.rgb, float3(1.0 - exposure));
ステップ8 パラメータ制限
パラメータ制限を行うにはexposure変数を以下のように記述。
parameter float exposure < minValue:float(-0.5); maxValue:float(0.5); defaultValue:float(0.0); >;
最終的なソースコード
最終的にできあがったソースコードは次の通り。
kernel SimpleExposure { parameter float exposure < minValue:float(-0.5); maxValue:float(0.5); defaultValue:float(0.0); >; void evaluatePixel(in image4 src, out pixel4 dst) { float4 inputColor = sampleNearest(src, outCoord()); dst.rgb = pow(inputColor.rgb, float3(1.0 - exposure)); dst.a = inputColor.a; } }
Hydraギャラリー
Hydra Filter Galleryより。
Fuzz
Sepia
TechnoDots
Twirl
Spotlight
Psychadelic
−戻る−