2009年03月01日

Pixel Bender V.S. ColorMatrixFilter @ Flash

Pixel Bender(ShaderFilter)とColorMatrixFilterを比較してみました。

Pixel Benderの方はPixel Bender Toolkitで作成したpbjをEmbedして、ColorMatrixFilterは配列としてデータを持たせて、mx:HTMLに対してフィルター適用とfilters = nullを10000回繰り返してみました。

mx:HTMLはYahoo!のトップページを表示。mx:HTMLと書いているので、当然FlexでAIRアプリケーションです。AIRは1.5。

結果は

Pixel Bender 80msから110ms
ColorMatrixFilter 40msから60ms

シンプルな分だけColorMatrixFilterが速いって事か。当然と言えば当然の結果ですね。

ちなみに、ColorMatrixFilterはこんな感じです。

[0.567,0.433,0,0,0, 0.558,0.442,0,0,0, 0,0.242,0.758,0,0, 0,0,0,1,0, 0,0,0,0,1]

Pixel Benderの方はこんな感じ。

<languageVersion : 1.0;>

kernel Protanopia
<
namespace: "unknown";
vendor: "unknown";
version: 1;
description: "";
>
{
input image4 src;
output pixel4 dst;

void
evaluatePixel()
{
pixel4 color = sampleLinear( src, outCoord() );

float r = (color.r * 0.567) + (color.g * 0.433);
float g = (color.r * 0.558) + (color.g * 0.442);
float b = (color.g * 0.242) + (color.b * 0.758);

dst = pixel4(r,g,b,1.0);

}
}

実験の結果Pixel Benderの方が遅いって事が分かりましたが、外部ファイルにして簡単に適用できるし、ColorMatrixFilterよりも複雑な事が出来るので、現在作っているモノをPixel Benderを使う形に書き換える事にしました。フィルターは全部外部ファイルにするので書き換えが可能になります。簡易的なモノを初期状態では提供して、もっとちゃんとしたフィルターが欲しい人は自分で自作して下さいという形にします。

閲覧数: 2659 / はてなブックマークusers

blog comments powered by Disqus

関連日記

アマゾン広告

この日記ページは閲覧数などの条件に応じて、閲覧制限を行っています。他からリンクしていただいても、そのリンクから辿った閲覧者が当ページの内容をご覧頂けない場合があります。ご了承下さい。

▼日記検索

Mac

Shade

3D

Flash

ゲーム

ウェブ

音楽

映画

デジカメ

Windows

Linux

携帯電話

テレビ

広島

電子工作

iOS

▼ 最近のトラックバック

▼ランキング

▼関連サイト