このページでは、Inkscapeの組み込みフィルタの1つである、波の立った水面に映したような絵に変換してくれるフィルタを紹介します。

(2023.05.25更新)
このフィルタを適用するには、プルダウンメニューで変形 > 波紋を操作します。
このフィルタには設定時にパラメータを指定するダイアログが無く、デフォルトのパラメータで適用されます。

このフィルタは、フィルタエディタの画面で見ると、次のようなフィルタプリミティブ要素から構成されています。

この波紋フィルタの最終的な変換結果は一番下の変位マップの出力になります。変位マップは、2番目(下のほう)に入力された画像のRGBA値に応じて、1番目に入力された画像の各ピクセルを移動する要素です(→ 変位マップ)。波紋フィルタでは変位マップのパラメータは自動的に次のように設定されています。

X変位に赤、Y変位にアルファが設定されているので、2番目に入力された画像の各ピクセルのR値に応じて1番目の画像のピクセルは左右に移動し、A値(不透明度)に応じて上下に移動します。そこで、波紋のような形に変形するには、この変位マップに横向きの縞模様を入力すればよいことになります。
そのために、乱流要素を使って、横向きのランダムな縞模様を生成しています。
乱流のパラメータには、基本周波数のX軸方向に「0.0」、Y軸方向に「0.11」が設定されています。こうすることで、縦方向にランダムに変化する画像(すなわち横方向の縞模様)になるというわけです。

この画像をそのまま変位マップに入力しても、赤の値のばらつきが小さすぎ、不透明度のばらつきが大きすぎて、いい感じに横方向のズレを大きくすることができないので、この画像を一旦カラーマトリクスに入力します。(→ カラーマトリクス)
カラーマトリクスのパラメータ(行列)は次のように設定されています。

赤の値は2倍になり、不透明度は半分になるので、

変位マップに入力することで、横方向に大きくズレ、縦方向はあまりズレない画像に変換されます。
なお、波紋をデフォルト設定よりももう少し細かくしたい場合は、乱流の生成する縞模様の周波数を大きくすれば良いです。例えばデフォルトの「0.11」から「0.2」に変えると、次のようになります。

変位マップの変換の様子がもう少しわかりやすい例で試してみました。

左上が波紋フィルタ適用先の画像、左下が波紋フィルタの中の乱流が生成している画像で、この2つを変位マップに入力すると、右のようになります。乱流が生成する画像の縞のうち、赤っぽいところがより大きくズレていることが分かります。
(参考:フィルタとは何か)