diff options
author | Thomas Dinges <blender@dingto.org> | 2012-09-15 19:03:43 +0400 |
---|---|---|
committer | Thomas Dinges <blender@dingto.org> | 2012-09-15 19:03:43 +0400 |
commit | b6fd8ae97a31cac8f2164f3f14915b34964d0e19 (patch) | |
tree | 4b2b18c2196337c33efb79007bae8fdec67c8b3d | |
parent | a55d13bb9e26e53d00191e4828cb45612a982f77 (diff) |
Cycles / OSL:
* Fix Musgrave Texture, used wrong Perlin Noise (0..1) instead of -1..1. Also added comment to noise_basis() to make it clear which noise type is used there.
-rw-r--r-- | intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl | 24 | ||||
-rw-r--r-- | intern/cycles/kernel/osl/nodes/node_texture.h | 2 |
2 files changed, 13 insertions, 13 deletions
diff --git a/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl b/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl index 3e1a6862660..7d125d50fd6 100644 --- a/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl +++ b/intern/cycles/kernel/osl/nodes/node_musgrave_texture.osl @@ -37,14 +37,14 @@ float noise_musgrave_fBm(point p, string basis, float H, float lacunarity, float int i; for(i = 0; i < (int)octaves; i++) { - value += noise_basis(p, basis) * pwr; + value += noise("perlin", p) * pwr; pwr *= pwHL; p *= lacunarity; } rmd = octaves - floor(octaves); if(rmd != 0.0) - value += rmd * noise_basis(p, basis) * pwr; + value += rmd * noise("perlin", p) * pwr; return value; } @@ -65,14 +65,14 @@ float noise_musgrave_multi_fractal(point p, string basis, float H, float lacunar int i; for(i = 0; i < (int)octaves; i++) { - value *= (pwr * noise_basis(p, basis) + 1.0); + value *= (pwr * noise("perlin", p) + 1.0); pwr *= pwHL; p *= lacunarity; } rmd = octaves - floor(octaves); if(rmd != 0.0) - value *= (rmd * pwr * noise_basis(p, basis) + 1.0); /* correct? */ + value *= (rmd * pwr * noise("perlin", p) + 1.0); /* correct? */ return value; } @@ -93,11 +93,11 @@ float noise_musgrave_hetero_terrain(point p, string basis, float H, float lacuna int i; /* first unscaled octave of function; later octaves are scaled */ - value = offset + noise_basis(p, basis); + value = offset + noise("perlin", p); p *= lacunarity; for(i = 1; i < (int)octaves; i++) { - increment = (noise_basis(p, basis) + offset) * pwr * value; + increment = (noise("perlin", p) + offset) * pwr * value; value += increment; pwr *= pwHL; p *= lacunarity; @@ -105,7 +105,7 @@ float noise_musgrave_hetero_terrain(point p, string basis, float H, float lacuna rmd = octaves - floor(octaves); if(rmd != 0.0) { - increment = (noise_basis(p, basis) + offset) * pwr * value; + increment = (noise("perlin", p) + offset) * pwr * value; value += rmd * increment; } @@ -127,7 +127,7 @@ float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H, float float pwr = pwHL; int i; - result = noise_basis(p, basis) + offset; + result = noise("perlin", p) + offset; weight = gain * result; p *= lacunarity; @@ -135,7 +135,7 @@ float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H, float if(weight > 1.0) weight = 1.0; - signal = (noise_basis(p, basis) + offset) * pwr; + signal = (noise("perlin", p) + offset) * pwr; pwr *= pwHL; result += weight * signal; weight *= gain * signal; @@ -144,7 +144,7 @@ float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H, float rmd = octaves - floor(octaves); if(rmd != 0.0) - result += rmd * ((noise_basis(p, basis) + offset) * pwr); + result += rmd * ((noise("perlin", p) + offset) * pwr); return result; } @@ -164,7 +164,7 @@ float noise_musgrave_ridged_multi_fractal(point p, string basis, float H, float float pwr = pwHL; int i; - signal = offset - fabs(noise_basis(p, basis)); + signal = offset - fabs(noise("perlin", p)); signal *= signal; result = signal; weight = 1.0; @@ -172,7 +172,7 @@ float noise_musgrave_ridged_multi_fractal(point p, string basis, float H, float for(i = 1; i < (int)octaves; i++) { p *= lacunarity; weight = clamp(signal * gain, 0.0, 1.0); - signal = offset - fabs(noise_basis(p, basis)); + signal = offset - fabs(noise("perlin", p)); signal *= signal; signal *= weight; result += signal * pwr; diff --git a/intern/cycles/kernel/osl/nodes/node_texture.h b/intern/cycles/kernel/osl/nodes/node_texture.h index b00bf6ab31f..7cd0742ffe8 100644 --- a/intern/cycles/kernel/osl/nodes/node_texture.h +++ b/intern/cycles/kernel/osl/nodes/node_texture.h @@ -156,7 +156,7 @@ float noise_basis(point p, string basis) float result = 0.0; if (basis == "Perlin") - result = noise(p); + result = noise(p); /* returns perlin noise in range 0..1 */ if (basis == "Voronoi F1") result = voronoi_F1S(p); if (basis == "Voronoi F2") |