diff options
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/kernel/shaders/node_noise_texture.osl | 20 | ||||
-rw-r--r-- | intern/cycles/kernel/shaders/node_wave_texture.osl | 2 | ||||
-rw-r--r-- | intern/cycles/kernel/svm/svm_noisetex.h | 20 | ||||
-rw-r--r-- | intern/cycles/kernel/svm/svm_wave.h | 2 |
4 files changed, 22 insertions, 22 deletions
diff --git a/intern/cycles/kernel/shaders/node_noise_texture.osl b/intern/cycles/kernel/shaders/node_noise_texture.osl index e3da2d16371..6cff1cdab2c 100644 --- a/intern/cycles/kernel/shaders/node_noise_texture.osl +++ b/intern/cycles/kernel/shaders/node_noise_texture.osl @@ -59,7 +59,7 @@ float noise_texture(float co, float detail, float distortion, output color Color { float p = co; if (distortion != 0.0) { - p += safe_noise(p + random_float_offset(0.0)) * distortion; + p += safe_snoise(p + random_float_offset(0.0)) * distortion; } float value = fractal_noise(p, detail); @@ -73,8 +73,8 @@ float noise_texture(vector2 co, float detail, float distortion, output color Col { vector2 p = co; if (distortion != 0.0) { - p += vector2(safe_noise(p + random_vector2_offset(0.0)) * distortion, - safe_noise(p + random_vector2_offset(1.0)) * distortion); + p += vector2(safe_snoise(p + random_vector2_offset(0.0)) * distortion, + safe_snoise(p + random_vector2_offset(1.0)) * distortion); } float value = fractal_noise(p, detail); @@ -88,9 +88,9 @@ float noise_texture(vector3 co, float detail, float distortion, output color Col { vector3 p = co; if (distortion != 0.0) { - p += vector3(safe_noise(p + random_vector3_offset(0.0)) * distortion, - safe_noise(p + random_vector3_offset(1.0)) * distortion, - safe_noise(p + random_vector3_offset(2.0)) * distortion); + p += vector3(safe_snoise(p + random_vector3_offset(0.0)) * distortion, + safe_snoise(p + random_vector3_offset(1.0)) * distortion, + safe_snoise(p + random_vector3_offset(2.0)) * distortion); } float value = fractal_noise(p, detail); @@ -104,10 +104,10 @@ float noise_texture(vector4 co, float detail, float distortion, output color Col { vector4 p = co; if (distortion != 0.0) { - p += vector4(safe_noise(p + random_vector4_offset(0.0)) * distortion, - safe_noise(p + random_vector4_offset(1.0)) * distortion, - safe_noise(p + random_vector4_offset(2.0)) * distortion, - safe_noise(p + random_vector4_offset(3.0)) * distortion); + p += vector4(safe_snoise(p + random_vector4_offset(0.0)) * distortion, + safe_snoise(p + random_vector4_offset(1.0)) * distortion, + safe_snoise(p + random_vector4_offset(2.0)) * distortion, + safe_snoise(p + random_vector4_offset(3.0)) * distortion); } float value = fractal_noise(p, detail); diff --git a/intern/cycles/kernel/shaders/node_wave_texture.osl b/intern/cycles/kernel/shaders/node_wave_texture.osl index 60591b79b33..a706c442368 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, string profile, float detail, float distortion, } if (distortion != 0.0) { - n = n + (distortion * fractal_noise(p * dscale, detail)); + n = n + (distortion * (fractal_noise(p * dscale, detail) * 2.0 - 1.0)); } if (profile == "sine") { diff --git a/intern/cycles/kernel/svm/svm_noisetex.h b/intern/cycles/kernel/svm/svm_noisetex.h index c5a1e43a729..12884c6cb25 100644 --- a/intern/cycles/kernel/svm/svm_noisetex.h +++ b/intern/cycles/kernel/svm/svm_noisetex.h @@ -55,7 +55,7 @@ ccl_device void noise_texture_1d( { float p = co; if (distortion != 0.0f) { - p += noise_1d(p + random_float_offset(0.0f)) * distortion; + p += snoise_1d(p + random_float_offset(0.0f)) * distortion; } *value = fractal_noise_1d(p, detail); @@ -71,8 +71,8 @@ ccl_device void noise_texture_2d( { float2 p = co; if (distortion != 0.0f) { - p += make_float2(noise_2d(p + random_float2_offset(0.0f)) * distortion, - noise_2d(p + random_float2_offset(1.0f)) * distortion); + p += make_float2(snoise_2d(p + random_float2_offset(0.0f)) * distortion, + snoise_2d(p + random_float2_offset(1.0f)) * distortion); } *value = fractal_noise_2d(p, detail); @@ -88,9 +88,9 @@ ccl_device void noise_texture_3d( { float3 p = co; if (distortion != 0.0f) { - p += make_float3(noise_3d(p + random_float3_offset(0.0f)) * distortion, - noise_3d(p + random_float3_offset(1.0f)) * distortion, - noise_3d(p + random_float3_offset(2.0f)) * distortion); + p += make_float3(snoise_3d(p + random_float3_offset(0.0f)) * distortion, + snoise_3d(p + random_float3_offset(1.0f)) * distortion, + snoise_3d(p + random_float3_offset(2.0f)) * distortion); } *value = fractal_noise_3d(p, detail); @@ -106,10 +106,10 @@ ccl_device void noise_texture_4d( { float4 p = co; if (distortion != 0.0f) { - p += make_float4(noise_4d(p + random_float4_offset(0.0f)) * distortion, - noise_4d(p + random_float4_offset(1.0f)) * distortion, - noise_4d(p + random_float4_offset(2.0f)) * distortion, - noise_4d(p + random_float4_offset(3.0f)) * distortion); + p += make_float4(snoise_4d(p + random_float4_offset(0.0f)) * distortion, + snoise_4d(p + random_float4_offset(1.0f)) * distortion, + snoise_4d(p + random_float4_offset(2.0f)) * distortion, + snoise_4d(p + random_float4_offset(3.0f)) * distortion); } *value = fractal_noise_4d(p, detail); diff --git a/intern/cycles/kernel/svm/svm_wave.h b/intern/cycles/kernel/svm/svm_wave.h index 402c1c87414..50c868c0f82 100644 --- a/intern/cycles/kernel/svm/svm_wave.h +++ b/intern/cycles/kernel/svm/svm_wave.h @@ -33,7 +33,7 @@ ccl_device_noinline_cpu float svm_wave(NodeWaveType type, n = len(p) * 20.0f; if (distortion != 0.0f) - n += distortion * fractal_noise_3d(p * dscale, detail); + n += distortion * (fractal_noise_3d(p * dscale, detail) * 2.0f - 1.0f); if (profile == NODE_WAVE_PROFILE_SIN) { return 0.5f + 0.5f * sinf(n); |