예제 #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;
}