SVGのフィルター機能を使ってパーリンノイズを生成することができます。
以下のページを参考にしました。
SVGファイル
SVGのフィルターを使用したパーリンノイズ生成の例
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200">
<defs>
<filter id="feTurbulence" filterUnits="userSpaceOnUse" x="0" y="0" width="200" height="200">
<feTurbulence type="fractalNoise" baseFrequency="0.05" numOctaves="5" seed="3" stitchTiles="stitch"></feTurbulence>
<feColorMatrix type="saturate" values="0"></feColorMatrix>
</filter>
</defs>
<rect filter="url(#feTurbulence)" x="0" y="0" width="200" height="200"></rect>
</svg>
この中のフィルター設定部分を見やすくしたのが以下のものです。
フィルター設定
<feTurbulence
type="fractalNoise"
baseFrequency="0.05"
numOctaves="5"
seed="3"
stitchTiles="stitch">
</feTurbulence>
<feColorMatrix
type="saturate"
values="0">
</feColorMatrix>
<filter>
の<feTurbulence>
によってパーリンノイズを生成することができます。このフィルターのみですと、各色要素に対してノイズが生成されますので、そのあとにfeColorMatrix
を利用してグレースケールにし、利用しやすい形にしています。
<feTurbulence>
のみのフィルターの場合、以下の様なイメージになります。
これにグレースケールのフィルターをかけて、以下のように仕上げています。
<feTurbulence>
のtype
には"turbulence"
と"fractalNoise"
の2種類から選ぶことができ、それぞれで特徴が異なります。
baseFrequency
では周期を設定することができ、きめ細かさに影響します。
numOctaves
では、フラクタル的な階層の深さを設定します。
stitchTiles
は、"stitch"
の指定で繋ぎ目をつなぐ設定にできるのですが、自分の環境だとそれらしく生成されませんでした。