* WIP commit of fixes for musgrave and wave.
This commit is contained in:
Thomas Dinges 2012-09-04 16:00:12 +00:00
parent 3d7fd3c158
commit f2caaaec9b
2 changed files with 20 additions and 15 deletions

@ -186,32 +186,35 @@ float noise_musgrave_ridged_multi_fractal(point p, string basis, float H, float
shader node_musgrave_texture( shader node_musgrave_texture(
string Type = "fBM", string Type = "fBM",
string Basis = "Perlin",
float Dimension = 2.0, float Dimension = 2.0,
float Lacunarity = 1.0, float Lacunarity = 1.0,
float Octaves = 2.0, float Detail = 2.0,
float Offset = 0.0, float Offset = 0.0,
float Intensity = 1.0,
float Gain = 1.0, float Gain = 1.0,
float Scale = 5.0, float Scale = 5.0,
point Vector = P, point Vector = P,
output float Fac = 0.0) output float Fac = 0.0,
output color Color = color(0.0, 0.0, 0.0))
{ {
float dimension = max(Dimension, 0.0); float dimension = max(Dimension, 1e-5);
float octaves = max(Octaves, 0.0); float octaves = clamp(Detail, 0.0, 16.0);
float lacunarity = max(Lacunarity, 1e-5); float lacunarity = max(Lacunarity, 1e-5);
string Basis = "Perlin"
float intensity = 1.0;
point p = Vector*Scale; point p = Vector*Scale;
if(Type == "Multifractal") if(Type == "Multifractal")
Fac = Intensity*noise_musgrave_multi_fractal(p, Basis, dimension, lacunarity, octaves); Fac = intensity*noise_musgrave_multi_fractal(p, Basis, dimension, lacunarity, octaves);
else if(Type == "fBM") else if(Type == "fBM")
Fac = Intensity*noise_musgrave_fBm(p, Basis, dimension, lacunarity, octaves); Fac = intensity*noise_musgrave_fBm(p, Basis, dimension, lacunarity, octaves);
else if(Type == "Hybrid Multifractal") else if(Type == "Hybrid Multifractal")
Fac = Intensity*noise_musgrave_hybrid_multi_fractal(p, Basis, dimension, lacunarity, octaves, Offset, Gain); Fac = intensity*noise_musgrave_hybrid_multi_fractal(p, Basis, dimension, lacunarity, octaves, Offset, Gain);
else if(Type == "Ridged Multifractal") else if(Type == "Ridged Multifractal")
Fac = Intensity*noise_musgrave_ridged_multi_fractal(p, Basis, dimension, lacunarity, octaves, Offset, Gain); Fac = intensity*noise_musgrave_ridged_multi_fractal(p, Basis, dimension, lacunarity, octaves, Offset, Gain);
else if(Type == "Hetero Terrain") else if(Type == "Hetero Terrain")
Fac = Intensity*noise_musgrave_hetero_terrain(p, Basis, dimension, lacunarity, octaves, Offset); Fac = intensity*noise_musgrave_hetero_terrain(p, Basis, dimension, lacunarity, octaves, Offset);
Color = color(Fac, Fac, Fac);
} }

@ -48,12 +48,14 @@ float wave(point p, float scale, string type, float detail, float distortion, fl
shader node_wave_texture( shader node_wave_texture(
string Type = "Bands", string Type = "Bands",
float Scale = 5.0, float Scale = 5.0,
float distortion = 0.0, float Distortion = 0.0,
float detail = 2.0, float Detail = 2.0,
float dscale = 1.0, float dscale = 1.0,
point Vector = P, point Vector = P,
output float Fac = 0.0) output float Fac = 0.0,
output color Color = color (0.0, 0.0, 0.0))
{ {
Fac = wave(Vector, Scale, Type, detail, distortion, dscale); Fac = wave(Vector, Scale, Type, Detail, Distortion, dscale);
Color = color(Fac, Fac, Fac);
} }