[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [50320] trunk/blender/intern/cycles/kernel /osl/nodes: Cycles / OSL:
Thomas Dinges
blender at dingto.org
Sun Sep 2 18:06:19 CEST 2012
Revision: 50320
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=50320
Author: dingto
Date: 2012-09-02 16:06:18 +0000 (Sun, 02 Sep 2012)
Log Message:
-----------
Cycles / OSL:
* Updates for noise_turbulence, to match svm function.
Modified Paths:
--------------
trunk/blender/intern/cycles/kernel/osl/nodes/node_noise_texture.osl
trunk/blender/intern/cycles/kernel/osl/nodes/node_texture.h
trunk/blender/intern/cycles/kernel/osl/nodes/node_wave_texture.osl
Modified: trunk/blender/intern/cycles/kernel/osl/nodes/node_noise_texture.osl
===================================================================
--- trunk/blender/intern/cycles/kernel/osl/nodes/node_noise_texture.osl 2012-09-02 15:41:35 UTC (rev 50319)
+++ trunk/blender/intern/cycles/kernel/osl/nodes/node_noise_texture.osl 2012-09-02 16:06:18 UTC (rev 50320)
@@ -35,7 +35,7 @@
p += r;
}
- fac = noise_turbulence(p, basis, (int)detail, hard);
+ fac = noise_turbulence(p, basis, detail, hard);
return fac;
Modified: trunk/blender/intern/cycles/kernel/osl/nodes/node_texture.h
===================================================================
--- trunk/blender/intern/cycles/kernel/osl/nodes/node_texture.h 2012-09-02 15:41:35 UTC (rev 50319)
+++ trunk/blender/intern/cycles/kernel/osl/nodes/node_texture.h 2012-09-02 16:06:18 UTC (rev 50320)
@@ -217,9 +217,12 @@
float fscale = 1.0;
float amp = 1.0;
float sum = 0.0;
- int i;
+ int i, n;
+
+ octaves = clamp(octaves, 0.0f, 16.0f);
+ n = (int)octaves;
- for (i = 0; i <= octaves; i++) {
+ for (i = 0; i <= n; i++) {
float t = noise_basis(fscale * p, basis);
if (hard)
@@ -229,10 +232,26 @@
amp *= 0.5;
fscale *= 2.0;
}
+
+ float rmd = octaves - floor(octaves)
- sum *= ((float)(1 << octaves) / (float)((1 << (octaves + 1)) - 1));
+ if(rmd != 0.0f) {
+ float t = noise_basis(fscale*p, basis);
- return sum;
+ if(hard)
+ t = fabsf(2.0f*t - 1.0f);
+
+ float sum2 = sum + t*amp;
+
+ sum *= ((float)(1 << n)/(float)((1 << (n+1)) - 1));
+ sum2 *= ((float)(1 << (n+1))/(float)((1 << (n+2)) - 1));
+
+ return (1.0f - rmd)*sum + rmd*sum2;
+ }
+ else {
+ sum *= ((float)(1 << n)/(float)((1 << (n+1)) - 1));
+ return sum;
+ }
}
/* Utility */
Modified: trunk/blender/intern/cycles/kernel/osl/nodes/node_wave_texture.osl
===================================================================
--- trunk/blender/intern/cycles/kernel/osl/nodes/node_wave_texture.osl 2012-09-02 15:41:35 UTC (rev 50319)
+++ trunk/blender/intern/cycles/kernel/osl/nodes/node_wave_texture.osl 2012-09-02 16:06:18 UTC (rev 50320)
@@ -38,7 +38,7 @@
}
if(distortion != 0.0) {
- n = n +(distortion * noise_turbulence(p*dscale, "Perlin", (int)detail, 0));
+ n = n +(distortion * noise_turbulence(p*dscale, "Perlin", detail, 0));
}
result = noise_wave("Sine", n);
More information about the Bf-blender-cvs
mailing list