Processing

PythonでProcessing Math Random noiseDetail()

Perlinノイズ機能で生成されるディテールの特性とレベルを調整する。物理学における倍音と同様に、ノイズは数オクターブにわたって計算される。低いオクターブは出力信号への寄与が大きく、ノイズの全体的な強さを決定し、高いオクターブはノイズのシーケンスの中でより細かいディテールを作る。

デフォルトでは、ノイズは4オクターブにわたって計算され、各オクターブの寄与は前のオクターブのちょうど半分で、最初のオクターブは50%の強度で始まる。このフォールオフ量は、関数パラメータを追加することで変更できる。

例えば、フォールオフ係数を0.75とすると、各オクターブの影響度が前の下位オクターブの75%(25%)になることを意味する。0.0から1.0の間の任意の数値が有効だが、0.5より大きい値を設定すると、noise()が1.0より大きい値を返す可能性がある。

これらのパラメータを変更することで、noise()関数によって生成される信号を、非常に特殊なニーズや特性に適合させることができる。

noiseVal = 0

def drawNoise(noiseScale = 0.03):
  for y in range(height):
    for x in range(width):
      noiseDetail(3, 0.5)
      noiseVal = noise(x * noiseScale, y * noiseScale)
      stroke(noiseVal * 255)
      point(x, y)
      
drawNoise()