[Bf-blender-cvs] [6b61f7f] master: Code cleanup / Cycles: Don't pass scale to texture functions, do the multiplication in the function call already.

Thomas Dinges noreply at git.blender.org
Mon Jan 13 21:23:27 CET 2014


Commit: 6b61f7f755011c0ceea89a31be218e1ed4940414
Author: Thomas Dinges
Date:   Mon Jan 13 20:40:13 2014 +0100
https://developer.blender.org/rB6b61f7f755011c0ceea89a31be218e1ed4940414

Code cleanup / Cycles: Don't pass scale to texture functions, do the multiplication in the function call already.

===================================================================

M	intern/cycles/kernel/svm/svm_brick.h
M	intern/cycles/kernel/svm/svm_checker.h
M	intern/cycles/kernel/svm/svm_musgrave.h
M	intern/cycles/kernel/svm/svm_noisetex.h
M	intern/cycles/kernel/svm/svm_voronoi.h

===================================================================

diff --git a/intern/cycles/kernel/svm/svm_brick.h b/intern/cycles/kernel/svm/svm_brick.h
index 7cac922..97c2b54 100644
--- a/intern/cycles/kernel/svm/svm_brick.h
+++ b/intern/cycles/kernel/svm/svm_brick.h
@@ -26,12 +26,10 @@ ccl_device_noinline float brick_noise(int n) /* fast integer noise */
 	return 0.5f * ((float)nn / 1073741824.0f);
 }
 
-ccl_device_noinline float2 svm_brick(float3 p, float scale, float mortar_size, float bias,
+ccl_device_noinline float2 svm_brick(float3 p, float mortar_size, float bias,
 	float brick_width, float row_height, float offset_amount, int offset_frequency,
 	float squash_amount, int squash_frequency)
-{	
-	p *= scale;
-
+{
 	int bricknum, rownum;
 	float offset = 0.0f;
 	float x, y;
@@ -89,7 +87,7 @@ ccl_device void svm_node_tex_brick(KernelGlobals *kg, ShaderData *sd, float *sta
 	float offset_amount = __int_as_float(node3.z);
 	float squash_amount = __int_as_float(node3.w);
 	
-	float2 f2 = svm_brick(co, scale, mortar_size, bias, brick_width, row_height,
+	float2 f2 = svm_brick(co*scale, mortar_size, bias, brick_width, row_height,
 		offset_amount, offset_frequency, squash_amount, squash_frequency);
 
 	float tint = f2.x;
diff --git a/intern/cycles/kernel/svm/svm_checker.h b/intern/cycles/kernel/svm/svm_checker.h
index ebc48e1..8d1a1a4 100644
--- a/intern/cycles/kernel/svm/svm_checker.h
+++ b/intern/cycles/kernel/svm/svm_checker.h
@@ -18,10 +18,8 @@ CCL_NAMESPACE_BEGIN
 
 /* Checker */
 
-ccl_device_noinline float svm_checker(float3 p, float scale)
-{	
-	p *= scale;
-
+ccl_device_noinline float svm_checker(float3 p)
+{
 	/* avoid precision issues on unit coordinates */
 	p.x = (p.x + 0.00001f)*0.9999f;
 	p.y = (p.y + 0.00001f)*0.9999f;
@@ -47,7 +45,7 @@ ccl_device void svm_node_tex_checker(KernelGlobals *kg, ShaderData *sd, float *s
 	float3 color2 = stack_load_float3(stack, color2_offset);
 	float scale = stack_load_float_default(stack, scale_offset, node.w);
 	
-	float f = svm_checker(co, scale);
+	float f = svm_checker(co*scale);
 
 	if(stack_valid(color_offset))
 		stack_store_float3(stack, color_offset, (f == 1.0f)? color1: color2);
diff --git a/intern/cycles/kernel/svm/svm_musgrave.h b/intern/cycles/kernel/svm/svm_musgrave.h
index c67dc82..61171d6 100644
--- a/intern/cycles/kernel/svm/svm_musgrave.h
+++ b/intern/cycles/kernel/svm/svm_musgrave.h
@@ -181,10 +181,9 @@ ccl_device_noinline float noise_musgrave_ridged_multi_fractal(float3 p, NodeNois
 
 /* Shader */
 
-ccl_device float svm_musgrave(NodeMusgraveType type, float dimension, float lacunarity, float octaves, float offset, float intensity, float gain, float scale, float3 p)
+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;
-	p *= scale;
 
 	if(type == NODE_MUSGRAVE_MULTIFRACTAL)
 		return intensity*noise_musgrave_multi_fractal(p, basis, dimension, lacunarity, octaves);
@@ -226,7 +225,7 @@ ccl_device void svm_node_tex_musgrave(KernelGlobals *kg, ShaderData *sd, float *
 	lacunarity = fmaxf(lacunarity, 1e-5f);
 
 	float f = svm_musgrave((NodeMusgraveType)type,
-		dimension, lacunarity, detail, foffset, 1.0f, gain, scale, co);
+		dimension, lacunarity, detail, foffset, 1.0f, gain, co*scale);
 
 	if(stack_valid(fac_offset))
 		stack_store_float(stack, fac_offset, f);
diff --git a/intern/cycles/kernel/svm/svm_noisetex.h b/intern/cycles/kernel/svm/svm_noisetex.h
index 0258313..5d5cfe6 100644
--- a/intern/cycles/kernel/svm/svm_noisetex.h
+++ b/intern/cycles/kernel/svm/svm_noisetex.h
@@ -18,13 +18,11 @@ CCL_NAMESPACE_BEGIN
 
 /* Noise */
 
-ccl_device_inline void svm_noise(float3 p, float scale, float detail, float distortion, float *fac, float3 *color)
+ccl_device_inline void svm_noise(float3 p, float detail, float distortion, float *fac, float3 *color)
 {
 	NodeNoiseBasis basis = NODE_NOISE_PERLIN;
 	int hard = 0;
 
-	p *= scale;
-
 	if(distortion != 0.0f) {
 		float3 r, offset = make_float3(13.5f, 13.5f, 13.5f);
 
@@ -57,7 +55,7 @@ ccl_device void svm_node_tex_noise(KernelGlobals *kg, ShaderData *sd, float *sta
 	float3 color;
 	float f;
 
-	svm_noise(co, scale, detail, distortion, &f, &color);
+	svm_noise(co*scale, detail, distortion, &f, &color);
 
 	decode_node_uchar4(node.z, &color_offset, &fac_offset, NULL, NULL);
 
diff --git a/intern/cycles/kernel/svm/svm_voronoi.h b/intern/cycles/kernel/svm/svm_voronoi.h
index 604fd34..7f597dc 100644
--- a/intern/cycles/kernel/svm/svm_voronoi.h
+++ b/intern/cycles/kernel/svm/svm_voronoi.h
@@ -18,10 +18,10 @@ CCL_NAMESPACE_BEGIN
 
 /* Voronoi */
 
-ccl_device_noinline float4 svm_voronoi(NodeVoronoiColoring coloring, float scale, float3 p)
+ccl_device_noinline float4 svm_voronoi(NodeVoronoiColoring coloring, float3 p)
 {
 	/* compute distance and point coordinate of 4 nearest neighbours */
-	float4 dpa0 = voronoi_Fn(p*scale, 1.0f, 0, -1);
+	float4 dpa0 = voronoi_Fn(p, 1.0f, 0, -1);
 
 	/* output */
 	float fac;
@@ -49,7 +49,7 @@ ccl_device void svm_node_tex_voronoi(KernelGlobals *kg, ShaderData *sd, float *s
 	float3 co = stack_load_float3(stack, co_offset);
 	float scale = stack_load_float_default(stack, scale_offset, node.w);
 
-	float4 result = svm_voronoi((NodeVoronoiColoring)coloring, scale, co);
+	float4 result = svm_voronoi((NodeVoronoiColoring)coloring, co*scale);
 	float3 color = make_float3(result.x, result.y, result.z);
 	float f = result.w;




More information about the Bf-blender-cvs mailing list