forked from bartvdbraak/blender
OSL:
* WIP commit of fixes for musgrave and wave.
This commit is contained in:
parent
3d7fd3c158
commit
f2caaaec9b
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user