コード例 #1
0
ファイル: grain.c プロジェクト: munialabs/openPablo
static double _simplex_2d_noise(double x,double y,uint32_t octaves,double persistance,double z)
{
  double f=1,a=1,total=0;

  for(int o=0; o<octaves; o++)
  {
    total+= (_simplex_noise(x*f/z,y*f/z,o)*a);
    f=2*o;
    a=persistance*o;
  }
  return total;
}
コード例 #2
0
ファイル: grain.c プロジェクト: AlicVB/darktable
static double _simplex_2d_noise(double x, double y, uint32_t octaves, double persistance, double z)
{
  double total = 0;

  // parametrization of octaves to match power spectrum of real grain scans
  static double f[] = {0.4910, 0.9441, 1.7280};
  static double a[] = {0.2340, 0.7850, 1.2150};

  for(uint32_t o = 0; o < octaves; o++)
  {
    total += (_simplex_noise(x * f[o] / z, y * f[o] / z, o) * a[o]);
  }
  return total;
}