Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
単純なぼかしなら、BlurEffect を使えばよいのでシェーダーを書く必要はありません。決して BlurBitmapEffect を使ってはいけません(あまりに遅いため、WPF 4では機能しなくなりました)。
Shader Effect Library に面白いぼかし効果がありました。ある点にズームインして収束するようなぼかしをかけられる ZoomBlur です。これも一種の畳み込みなんでしょうか、ズームスケールに応じて15回サンプリングして平滑化しています。WPF側で C0 定数レジスターを変化させればズームイン アニメーションが作れます。マウスを右クリックしながら動かせば焦点の位置が変わります。
sampler2D implicitInput : register(s0);
float c0:register(c0);
float2 c5:register(c5);
float4 main(float2 uv : TEXCOORD) : COLOR
{
float4 c = 0;
uv -= c5;
for(int i=0; i<15; i++)
{
float scale = 1.0 + c0 * (i / 14.0);
c += tex2D(implicitInput, uv * scale + c5);
}
c /= 15;
return c;
}
このシェーダー コードも後ほどまとめて PsPad.Codeplex にアップロードします。