17 double amplitude = persistence;
19 for (
int i = 0; i < def.
octaves; i++) {
20 n += amplitude *
noise(frequency * p);
21 amplitude *= persistence;
24 return (n + 1.0) * 0.5;
31 double amplitude = persistence;
33 for (
int i = 0; i < def.
octaves; i++) {
34 n += amplitude * fabs(
noise(frequency * p));
35 amplitude *= persistence;
45 double amplitude = persistence;
47 for (
int i = 0; i < def.
octaves; i++) {
48 n += amplitude *
noise(frequency * p);
49 amplitude *= persistence;
61 double amplitude = persistence;
63 for (
int i = 0; i < def.
octaves; i++) {
64 n += amplitude *
noise(frequency * p);
65 amplitude *= persistence;
68 return (2.0 * fabs(n) - 1.0) + 1.0;
75 double amplitude = persistence;
77 for (
int i = 0; i < def.
octaves; i++) {
78 n += amplitude *
noise(frequency * p);
79 amplitude *= persistence;
82 return sqrt(10.0 * fabs(n));
89 double amplitude = persistence;
91 for (
int i = 0; i < 3; i++) {
92 n += amplitude *
noise(frequency * p);
93 amplitude *= persistence;
100 inline double octavenoise(
int octaves,
const double persistence,
const double lacunarity,
const vector3d &p)
104 double amplitude = persistence;
105 double frequency = 1.0;
107 n += amplitude *
noise(frequency * p);
108 amplitude *= persistence;
109 frequency *= lacunarity;
111 return (n + 1.0) * 0.5;
118 double amplitude = persistence;
119 double frequency = 1.0;
121 n += amplitude * fabs(
noise(frequency * p));
122 amplitude *= persistence;
123 frequency *= lacunarity;
132 double amplitude = persistence;
133 double frequency = 1.0;
135 n += amplitude *
noise(frequency * p);
136 amplitude *= persistence;
137 frequency *= lacunarity;
148 double amplitude = persistence;
149 double frequency = 1.0;
151 n += amplitude *
noise(frequency * p);
152 amplitude *= persistence;
153 frequency *= lacunarity;
155 return (2.0 * fabs(n) - 1.0) + 1.0;
162 double amplitude = persistence;
163 double frequency = 1.0;
165 n += amplitude *
noise(frequency * p);
166 amplitude *= persistence;
167 frequency *= lacunarity;
169 return sqrt(10.0 * fabs(n));
175 const double nClamped =
Clamp(n, 0.0, 1.0);
176 return start * (1.0 - nClamped) + end * nClamped;
184#define terrain_colournoise_rock octavenoise(GetFracDef(0), 0.65, p)
185#define terrain_colournoise_rock2 octavenoise(GetFracDef(1), 0.6, p) * 0.6 * ridged_octavenoise(GetFracDef(0), 0.55, p)
188#define terrain_colournoise_mud 0.1 * voronoiscam_octavenoise(GetFracDef(1), 0.5, p) * octavenoise(GetFracDef(1), 0.5, p) * GetFracDef(5).amplitude
189#define terrain_colournoise_sand ridged_octavenoise(GetFracDef(0), 0.4, p) * dunes_octavenoise(GetFracDef(2), 0.4, p) + 0.1 * dunes_octavenoise(GetFracDef(1), 0.5, p)
190#define terrain_colournoise_sand2 dunes_octavenoise(GetFracDef(0), 0.6, p) * octavenoise(GetFracDef(4), 0.6, p)
192#define terrain_colournoise_grass billow_octavenoise(GetFracDef(1), 0.8, p)
193#define terrain_colournoise_grass2 billow_octavenoise(GetFracDef(3), 0.6, p) * voronoiscam_octavenoise(GetFracDef(4), 0.6, p) * river_octavenoise(GetFracDef(5), 0.6, p)
194#define terrain_colournoise_forest octavenoise(GetFracDef(1), 0.65, p) * voronoiscam_octavenoise(GetFracDef(2), 0.65, p)
195#define terrain_colournoise_water dunes_octavenoise(GetFracDef(6), 0.6, p)
const T & Clamp(const T &x, const T &min, const T &max)
Definition libs.h:69
Definition TerrainNoise.h:10
vector3d interpolate_color(const double n, const vector3d &start, const vector3d &end)
Definition TerrainNoise.h:173
double voronoiscam_octavenoise(const fracdef_t &def, const double persistence, const vector3d &p)
Definition TerrainNoise.h:71
double river_octavenoise(const fracdef_t &def, const double persistence, const vector3d &p)
Definition TerrainNoise.h:27
double billow_octavenoise(const fracdef_t &def, const double persistence, const vector3d &p)
Definition TerrainNoise.h:57
double ridged_octavenoise(const fracdef_t &def, const double persistence, const vector3d &p)
Definition TerrainNoise.h:41
double octavenoise(const fracdef_t &def, const double persistence, const vector3d &p)
Definition TerrainNoise.h:13
double dunes_octavenoise(const fracdef_t &def, const double persistence, const vector3d &p)
Definition TerrainNoise.h:85
double noise(const vector3d &p)
Definition perlin.cpp:114
double lacunarity
Definition FracDef.h:12
int octaves
Definition FracDef.h:13
double frequency
Definition FracDef.h:11