#じゃべめも

じゃべめも棚卸し

パーリンノイズ

地形生成に使えそうななだらかなノイズ Perlin Noise フラクタル地形自動生成

バリューノイズ

ランダムな値の間を補完して作るノイズ 基本的に、線形補完に渡す割合の値を、こねくり回してる感じ

線形補完

aまで移動後、a-b間のx%を追加で移動

def liner(a, b, x)
  a + x * (b - a)
end

コサイン補完

線形補完に使っているx%を、コサインを使って作る。 ラジアンが0〜PIの時、コサインは-1〜1なので、1から引いて0〜2にする。 これを半分にして距離の割合(x%)を作る

def cosine(a, b, x)
  ft = x * Math::PI # 0〜1を0〜PIのラジアンへ変換
  f = (1 - Math.cos(ft)) * 0.5
  a + f * (b - a)
end

パーリン先生の補完(?)

ノイズの話 - Pentanium Blog? 補完の割合をf(t) = 6.0*t^5-15*t^4+10*t^3に食わせると いい感じに滑らかになる魔法

def parlin_interpolate(a, b, x)
  # 
  f = x * x * x * (10.0 + x * (-15.0 + 6.0 * t))
  a + f * (b - a)