From 46d8bcb617bcc774e6b312e555edba54a3654f75 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Thu, 28 May 2015 01:07:37 +0200 Subject: Cleanup: Remove unused Noise Basis texture code. Same as last commit, code is unused and this one actually would have required some fixes, as these variants output values outside the 0-1 value range, which doesn't fit Cycles shader design. --- .../kernel/shaders/node_musgrave_texture.osl | 25 ++++++------ .../cycles/kernel/shaders/node_noise_texture.osl | 17 ++++---- intern/cycles/kernel/shaders/node_texture.h | 38 ++---------------- intern/cycles/kernel/shaders/node_wave_texture.osl | 2 +- intern/cycles/kernel/svm/svm_musgrave.h | 22 +++++------ intern/cycles/kernel/svm/svm_noisetex.h | 13 +++---- intern/cycles/kernel/svm/svm_texture.h | 45 ++-------------------- intern/cycles/kernel/svm/svm_types.h | 11 ------ intern/cycles/kernel/svm/svm_wave.h | 2 +- 9 files changed, 44 insertions(+), 131 deletions(-) (limited to 'intern') diff --git a/intern/cycles/kernel/shaders/node_musgrave_texture.osl b/intern/cycles/kernel/shaders/node_musgrave_texture.osl index a349dc8cb9a..4f95dec910a 100644 --- a/intern/cycles/kernel/shaders/node_musgrave_texture.osl +++ b/intern/cycles/kernel/shaders/node_musgrave_texture.osl @@ -26,7 +26,7 @@ * from "Texturing and Modelling: A procedural approach" */ -float noise_musgrave_fBm(point p, string basis, float H, float lacunarity, float octaves) +float noise_musgrave_fBm(point p, float H, float lacunarity, float octaves) { float rmd; float value = 0.0; @@ -54,7 +54,7 @@ float noise_musgrave_fBm(point p, string basis, float H, float lacunarity, float * octaves: number of frequencies in the fBm */ -float noise_musgrave_multi_fractal(point p, string basis, float H, float lacunarity, float octaves) +float noise_musgrave_multi_fractal(point p, float H, float lacunarity, float octaves) { float rmd; float value = 1.0; @@ -83,7 +83,7 @@ float noise_musgrave_multi_fractal(point p, string basis, float H, float lacunar * offset: raises the terrain from `sea level' */ -float noise_musgrave_hetero_terrain(point p, string basis, float H, float lacunarity, float octaves, float offset) +float noise_musgrave_hetero_terrain(point p, float H, float lacunarity, float octaves, float offset) { float value, increment, rmd; float pwHL = pow(lacunarity, -H); @@ -118,8 +118,8 @@ float noise_musgrave_hetero_terrain(point p, string basis, float H, float lacuna * offset: raises the terrain from `sea level' */ -float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H, - float lacunarity, float octaves, float offset, float gain) +float noise_musgrave_hybrid_multi_fractal(point p, float H, float lacunarity, + float octaves, float offset, float gain) { float result, signal, weight, rmd; float pwHL = pow(lacunarity, -H); @@ -156,8 +156,8 @@ float noise_musgrave_hybrid_multi_fractal(point p, string basis, float H, * offset: raises the terrain from `sea level' */ -float noise_musgrave_ridged_multi_fractal(point p, string basis, float H, - float lacunarity, float octaves, float offset, float gain) +float noise_musgrave_ridged_multi_fractal(point p, float H, float lacunarity, + float octaves, float offset, float gain) { float result, signal, weight; float pwHL = pow(lacunarity, -H); @@ -201,7 +201,6 @@ shader node_musgrave_texture( float dimension = max(Dimension, 1e-5); float octaves = clamp(Detail, 0.0, 16.0); float lacunarity = max(Lacunarity, 1e-5); - string Basis = "Perlin"; float intensity = 1.0; point p = Vector; @@ -212,15 +211,15 @@ shader node_musgrave_texture( p = p * Scale; if (Type == "Multifractal") - Fac = intensity * noise_musgrave_multi_fractal(p, Basis, dimension, lacunarity, octaves); + Fac = intensity * noise_musgrave_multi_fractal(p, dimension, lacunarity, octaves); else if (Type == "fBM") - Fac = intensity * noise_musgrave_fBm(p, Basis, dimension, lacunarity, octaves); + Fac = intensity * noise_musgrave_fBm(p, dimension, lacunarity, octaves); 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, dimension, lacunarity, octaves, Offset, Gain); 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, dimension, lacunarity, octaves, Offset, Gain); else if (Type == "Hetero Terrain") - Fac = intensity * noise_musgrave_hetero_terrain(p, Basis, dimension, lacunarity, octaves, Offset); + Fac = intensity * noise_musgrave_hetero_terrain(p, dimension, lacunarity, octaves, Offset); Color = color(Fac, Fac, Fac); } diff --git a/intern/cycles/kernel/shaders/node_noise_texture.osl b/intern/cycles/kernel/shaders/node_noise_texture.osl index dabc0b6843f..e83e5b5b211 100644 --- a/intern/cycles/kernel/shaders/node_noise_texture.osl +++ b/intern/cycles/kernel/shaders/node_noise_texture.osl @@ -19,23 +19,23 @@ /* Noise */ -float noise(point p, string basis, float distortion, float detail, float fac, color Color) +float noise(point p, float distortion, float detail, float fac, color Color) { point r; int hard = 0; if (distortion != 0.0) { - r[0] = noise_basis(p + point(13.5), basis) * distortion; - r[1] = noise_basis(p, basis) * distortion; - r[2] = noise_basis(p - point(13.5), basis) * distortion; + r[0] = safe_noise(p + point(13.5), "unsigned") * distortion; + r[1] = safe_noise(p, "unsigned") * distortion; + r[2] = safe_noise(p - point(13.5), "unsigned") * distortion; p += r; } - fac = noise_turbulence(p, basis, detail, hard); + fac = noise_turbulence(p, detail, hard); - Color = color(fac, noise_turbulence(point(p[1], p[0], p[2]), basis, detail, hard), - noise_turbulence(point(p[1], p[2], p[0]), basis, detail, hard)); + Color = color(fac, noise_turbulence(point(p[1], p[0], p[2]), detail, hard), + noise_turbulence(point(p[1], p[2], p[0]), detail, hard)); return fac; } @@ -55,7 +55,6 @@ shader node_noise_texture( if (use_mapping) p = transform(mapping, p); - string Basis = "Perlin"; - Fac = noise(p * Scale, Basis, Distortion, Detail, Fac, Color); + Fac = noise(p * Scale, Distortion, Detail, Fac, Color); } diff --git a/intern/cycles/kernel/shaders/node_texture.h b/intern/cycles/kernel/shaders/node_texture.h index 2d47b8e4672..fc2cfdcd55c 100644 --- a/intern/cycles/kernel/shaders/node_texture.h +++ b/intern/cycles/kernel/shaders/node_texture.h @@ -106,41 +106,9 @@ float safe_noise(point p, string type) return f; } -float noise_basis(point p, string basis) -{ - if (basis == "Perlin") - return safe_noise(p, "unsigned"); -#if 0 - if (basis == "Voronoi F1") - return voronoi_F1S(p); - if (basis == "Voronoi F2") - return voronoi_F2S(p); - if (basis == "Voronoi F3") - return voronoi_F3S(p); - if (basis == "Voronoi F4") - return voronoi_F4S(p); - if (basis == "Voronoi F2-F1") - return voronoi_F1F2S(p); - if (basis == "Voronoi Crackle") - return voronoi_CrS(p); -#endif - if (basis == "Cell Noise") - return cellnoise(p); - - return 0.0; -} - -/* Soft/Hard Noise */ - -float noise_basis_hard(point p, string basis, int hard) -{ - float t = noise_basis(p, basis); - return (hard) ? fabs(2.0 * t - 1.0) : t; -} - /* Turbulence */ -float noise_turbulence(point p, string basis, float details, int hard) +float noise_turbulence(point p, float details, int hard) { float fscale = 1.0; float amp = 1.0; @@ -151,7 +119,7 @@ float noise_turbulence(point p, string basis, float details, int hard) n = (int)octaves; for (i = 0; i <= n; i++) { - float t = noise_basis(fscale * p, basis); + float t = safe_noise(fscale * p, "unsigned"); if (hard) t = fabs(2.0 * t - 1.0); @@ -164,7 +132,7 @@ float noise_turbulence(point p, string basis, float details, int hard) float rmd = octaves - floor(octaves); if (rmd != 0.0) { - float t = noise_basis(fscale * p, basis); + float t = safe_noise(fscale * p, "unsigned"); if (hard) t = fabs(2.0 * t - 1.0); diff --git a/intern/cycles/kernel/shaders/node_wave_texture.osl b/intern/cycles/kernel/shaders/node_wave_texture.osl index a95752fc592..569f284cbac 100644 --- a/intern/cycles/kernel/shaders/node_wave_texture.osl +++ b/intern/cycles/kernel/shaders/node_wave_texture.osl @@ -31,7 +31,7 @@ float wave(point p, string type, float detail, float distortion, float dscale) } if (distortion != 0.0) { - n = n + (distortion * noise_turbulence(p * dscale, "Perlin", detail, 0)); + n = n + (distortion * noise_turbulence(p * dscale, detail, 0)); } return 0.5 + 0.5 * sin(n); } diff --git a/intern/cycles/kernel/svm/svm_musgrave.h b/intern/cycles/kernel/svm/svm_musgrave.h index 2a0a8e0e87d..09eba31945e 100644 --- a/intern/cycles/kernel/svm/svm_musgrave.h +++ b/intern/cycles/kernel/svm/svm_musgrave.h @@ -25,7 +25,7 @@ CCL_NAMESPACE_BEGIN * from "Texturing and Modelling: A procedural approach" */ -ccl_device_noinline float noise_musgrave_fBm(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves) +ccl_device_noinline float noise_musgrave_fBm(float3 p, float H, float lacunarity, float octaves) { float rmd; float value = 0.0f; @@ -53,7 +53,7 @@ ccl_device_noinline float noise_musgrave_fBm(float3 p, NodeNoiseBasis basis, flo * octaves: number of frequencies in the fBm */ -ccl_device_noinline float noise_musgrave_multi_fractal(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves) +ccl_device_noinline float noise_musgrave_multi_fractal(float3 p, float H, float lacunarity, float octaves) { float rmd; float value = 1.0f; @@ -82,7 +82,7 @@ ccl_device_noinline float noise_musgrave_multi_fractal(float3 p, NodeNoiseBasis * offset: raises the terrain from `sea level' */ -ccl_device_noinline float noise_musgrave_hetero_terrain(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves, float offset) +ccl_device_noinline float noise_musgrave_hetero_terrain(float3 p, float H, float lacunarity, float octaves, float offset) { float value, increment, rmd; float pwHL = powf(lacunarity, -H); @@ -117,7 +117,7 @@ ccl_device_noinline float noise_musgrave_hetero_terrain(float3 p, NodeNoiseBasis * offset: raises the terrain from `sea level' */ -ccl_device_noinline float noise_musgrave_hybrid_multi_fractal(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves, float offset, float gain) +ccl_device_noinline float noise_musgrave_hybrid_multi_fractal(float3 p, float H, float lacunarity, float octaves, float offset, float gain) { float result, signal, weight, rmd; float pwHL = powf(lacunarity, -H); @@ -154,7 +154,7 @@ ccl_device_noinline float noise_musgrave_hybrid_multi_fractal(float3 p, NodeNois * offset: raises the terrain from `sea level' */ -ccl_device_noinline float noise_musgrave_ridged_multi_fractal(float3 p, NodeNoiseBasis basis, float H, float lacunarity, float octaves, float offset, float gain) +ccl_device_noinline float noise_musgrave_ridged_multi_fractal(float3 p, float H, float lacunarity, float octaves, float offset, float gain) { float result, signal, weight; float pwHL = powf(lacunarity, -H); @@ -183,18 +183,16 @@ ccl_device_noinline float noise_musgrave_ridged_multi_fractal(float3 p, NodeNois ccl_device float svm_musgrave(NodeMusgraveType type, float dimension, float lacunarity, float octaves, float offset, float intensity, float gain, float3 p) { - NodeNoiseBasis basis = NODE_NOISE_PERLIN; - if(type == NODE_MUSGRAVE_MULTIFRACTAL) - return intensity*noise_musgrave_multi_fractal(p, basis, dimension, lacunarity, octaves); + return intensity*noise_musgrave_multi_fractal(p, dimension, lacunarity, octaves); else if(type == NODE_MUSGRAVE_FBM) - return intensity*noise_musgrave_fBm(p, basis, dimension, lacunarity, octaves); + return intensity*noise_musgrave_fBm(p, dimension, lacunarity, octaves); else if(type == NODE_MUSGRAVE_HYBRID_MULTIFRACTAL) - return intensity*noise_musgrave_hybrid_multi_fractal(p, basis, dimension, lacunarity, octaves, offset, gain); + return intensity*noise_musgrave_hybrid_multi_fractal(p, dimension, lacunarity, octaves, offset, gain); else if(type == NODE_MUSGRAVE_RIDGED_MULTIFRACTAL) - return intensity*noise_musgrave_ridged_multi_fractal(p, basis, dimension, lacunarity, octaves, offset, gain); + return intensity*noise_musgrave_ridged_multi_fractal(p, dimension, lacunarity, octaves, offset, gain); else if(type == NODE_MUSGRAVE_HETERO_TERRAIN) - return intensity*noise_musgrave_hetero_terrain(p, basis, dimension, lacunarity, octaves, offset); + return intensity*noise_musgrave_hetero_terrain(p, dimension, lacunarity, octaves, offset); return 0.0f; } diff --git a/intern/cycles/kernel/svm/svm_noisetex.h b/intern/cycles/kernel/svm/svm_noisetex.h index eccd119b74f..62ff38cf1c5 100644 --- a/intern/cycles/kernel/svm/svm_noisetex.h +++ b/intern/cycles/kernel/svm/svm_noisetex.h @@ -20,23 +20,22 @@ CCL_NAMESPACE_BEGIN ccl_device_inline void svm_noise(float3 p, float detail, float distortion, float *fac, float3 *color) { - NodeNoiseBasis basis = NODE_NOISE_PERLIN; int hard = 0; if(distortion != 0.0f) { float3 r, offset = make_float3(13.5f, 13.5f, 13.5f); - r.x = noise_basis(p + offset, basis) * distortion; - r.y = noise_basis(p, basis) * distortion; - r.z = noise_basis(p - offset, basis) * distortion; + r.x = noise(p + offset) * distortion; + r.y = noise(p) * distortion; + r.z = noise(p - offset) * distortion; p += r; } - *fac = noise_turbulence(p, basis, detail, hard); + *fac = noise_turbulence(p, detail, hard); *color = make_float3(*fac, - noise_turbulence(make_float3(p.y, p.x, p.z), basis, detail, hard), - noise_turbulence(make_float3(p.y, p.z, p.x), basis, detail, hard)); + noise_turbulence(make_float3(p.y, p.x, p.z), detail, hard), + noise_turbulence(make_float3(p.y, p.z, p.x), detail, hard)); } ccl_device void svm_node_tex_noise(KernelGlobals *kg, ShaderData *sd, float *stack, uint4 node, int *offset) diff --git a/intern/cycles/kernel/svm/svm_texture.h b/intern/cycles/kernel/svm/svm_texture.h index 904c1e5259a..dcb00f7dd55 100644 --- a/intern/cycles/kernel/svm/svm_texture.h +++ b/intern/cycles/kernel/svm/svm_texture.h @@ -16,48 +16,9 @@ CCL_NAMESPACE_BEGIN -/* Noise Bases */ - -ccl_device float noise_basis(float3 p, NodeNoiseBasis basis) -{ - /* Only Perlin enabled for now, others break CUDA compile by making kernel - * too big, with compile using > 4GB, due to everything being inlined. */ - -#if 0 - if(basis == NODE_NOISE_PERLIN) -#endif - return noise(p); -#if 0 - if(basis == NODE_NOISE_VORONOI_F1) - return voronoi_F1S(p); - if(basis == NODE_NOISE_VORONOI_F2) - return voronoi_F2S(p); - if(basis == NODE_NOISE_VORONOI_F3) - return voronoi_F3S(p); - if(basis == NODE_NOISE_VORONOI_F4) - return voronoi_F4S(p); - if(basis == NODE_NOISE_VORONOI_F2_F1) - return voronoi_F1F2S(p); - if(basis == NODE_NOISE_VORONOI_CRACKLE) - return voronoi_CrS(p); - if(basis == NODE_NOISE_CELL_NOISE) - return cellnoise(p); - - return 0.0f; -#endif -} - -/* Soft/Hard Noise */ - -ccl_device float noise_basis_hard(float3 p, NodeNoiseBasis basis, int hard) -{ - float t = noise_basis(p, basis); - return (hard)? fabsf(2.0f*t - 1.0f): t; -} - /* Turbulence */ -ccl_device_noinline float noise_turbulence(float3 p, NodeNoiseBasis basis, float octaves, int hard) +ccl_device_noinline float noise_turbulence(float3 p, float octaves, int hard) { float fscale = 1.0f; float amp = 1.0f; @@ -68,7 +29,7 @@ ccl_device_noinline float noise_turbulence(float3 p, NodeNoiseBasis basis, float n = float_to_int(octaves); for(i = 0; i <= n; i++) { - float t = noise_basis(fscale*p, basis); + float t = noise(fscale*p); if(hard) t = fabsf(2.0f*t - 1.0f); @@ -81,7 +42,7 @@ ccl_device_noinline float noise_turbulence(float3 p, NodeNoiseBasis basis, float float rmd = octaves - floorf(octaves); if(rmd != 0.0f) { - float t = noise_basis(fscale*p, basis); + float t = noise(fscale*p); if(hard) t = fabsf(2.0f*t - 1.0f); diff --git a/intern/cycles/kernel/svm/svm_types.h b/intern/cycles/kernel/svm/svm_types.h index 6d956a57da3..8bf6c647e15 100644 --- a/intern/cycles/kernel/svm/svm_types.h +++ b/intern/cycles/kernel/svm/svm_types.h @@ -273,17 +273,6 @@ typedef enum NodeConvert { NODE_CONVERT_IV } NodeConvert; -typedef enum NodeNoiseBasis { - NODE_NOISE_PERLIN, - NODE_NOISE_VORONOI_F1, - NODE_NOISE_VORONOI_F2, - NODE_NOISE_VORONOI_F3, - NODE_NOISE_VORONOI_F4, - NODE_NOISE_VORONOI_F2_F1, - NODE_NOISE_VORONOI_CRACKLE, - NODE_NOISE_CELL_NOISE -} NodeNoiseBasis; - typedef enum NodeMusgraveType { NODE_MUSGRAVE_MULTIFRACTAL, NODE_MUSGRAVE_FBM, diff --git a/intern/cycles/kernel/svm/svm_wave.h b/intern/cycles/kernel/svm/svm_wave.h index 36b59c3684c..6eaddaf301c 100644 --- a/intern/cycles/kernel/svm/svm_wave.h +++ b/intern/cycles/kernel/svm/svm_wave.h @@ -28,7 +28,7 @@ ccl_device_noinline float svm_wave(NodeWaveType type, float3 p, float detail, fl n = len(p) * 20.0f; if(distortion != 0.0f) - n += distortion * noise_turbulence(p*dscale, NODE_NOISE_PERLIN, detail, 0); + n += distortion * noise_turbulence(p*dscale, detail, 0); return 0.5f + 0.5f * sinf(n); } -- cgit v1.2.3