[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56575] trunk/blender: Fix #35246: cycles has no simple way to combine bump and normal mapping.

Brecht Van Lommel brechtvanlommel at pandora.be
Wed May 8 15:23:13 CEST 2013


Revision: 56575
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56575
Author:   blendix
Date:     2013-05-08 13:23:13 +0000 (Wed, 08 May 2013)
Log Message:
-----------
Fix #35246: cycles has no simple way to combine bump and normal mapping. Now
the Bump node has a Normal input, so you can chain it after a Normal Map node.
Note that normal mapping always has to be done first because it is tied to the
particular mesh surface and tangents.

Modified Paths:
--------------
    trunk/blender/intern/cycles/kernel/shaders/node_bump.osl
    trunk/blender/intern/cycles/render/graph.cpp
    trunk/blender/intern/cycles/render/nodes.cpp
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bump.c

Modified: trunk/blender/intern/cycles/kernel/shaders/node_bump.osl
===================================================================
--- trunk/blender/intern/cycles/kernel/shaders/node_bump.osl	2013-05-08 13:19:55 UTC (rev 56574)
+++ trunk/blender/intern/cycles/kernel/shaders/node_bump.osl	2013-05-08 13:23:13 UTC (rev 56575)
@@ -27,7 +27,7 @@
 	float SampleCenter = 0.0,
 	float SampleX = 0.0,
 	float SampleY = 0.0,
-	output normal Normal = N)
+	output normal NormalOut = N)
 {
 	/* get surface tangents from normal */
 	vector dPdx = Dx(P);
@@ -44,6 +44,6 @@
 	float absdet = fabs(det);
 	
 	/* compute and output perturbed normal */
-	Normal = normalize(absdet * NormalIn - sign(det) * surfgrad);
+	NormalOut = normalize(absdet * NormalIn - sign(det) * surfgrad);
 }
 

Modified: trunk/blender/intern/cycles/render/graph.cpp
===================================================================
--- trunk/blender/intern/cycles/render/graph.cpp	2013-05-08 13:19:55 UTC (rev 56574)
+++ trunk/blender/intern/cycles/render/graph.cpp	2013-05-08 13:23:13 UTC (rev 56575)
@@ -668,7 +668,7 @@
 
 	/* for displacement bump, clear the normal input in case the above loop
 	 * connected the setnormal out to the bump normalin */
-	ShaderInput *bump_normal_in = bump->input("NormalIn");
+	ShaderInput *bump_normal_in = bump->input("Normal");
 	if(bump_normal_in)
 		bump_normal_in->link = NULL;
 

Modified: trunk/blender/intern/cycles/render/nodes.cpp
===================================================================
--- trunk/blender/intern/cycles/render/nodes.cpp	2013-05-08 13:19:55 UTC (rev 56574)
+++ trunk/blender/intern/cycles/render/nodes.cpp	2013-05-08 13:23:13 UTC (rev 56575)
@@ -3054,7 +3054,7 @@
 	add_input("SampleCenter", SHADER_SOCKET_FLOAT);
 	add_input("SampleX", SHADER_SOCKET_FLOAT);
 	add_input("SampleY", SHADER_SOCKET_FLOAT);
-	add_input("NormalIn", SHADER_SOCKET_NORMAL, ShaderInput::NORMAL);
+	add_input("Normal", SHADER_SOCKET_NORMAL, ShaderInput::NORMAL);
 	add_input("Strength", SHADER_SOCKET_FLOAT, 0.1f);
 
 	add_output("Normal", SHADER_SOCKET_NORMAL);
@@ -3065,7 +3065,7 @@
 	ShaderInput *center_in = input("SampleCenter");
 	ShaderInput *dx_in = input("SampleX");
 	ShaderInput *dy_in = input("SampleY");
-	ShaderInput *normal_in = input("NormalIn");
+	ShaderInput *normal_in = input("Normal");
 	ShaderInput *intensity_in = input("Strength");
 	ShaderOutput *normal_out = output("Normal");
 

Modified: trunk/blender/source/blender/nodes/shader/nodes/node_shader_bump.c
===================================================================
--- trunk/blender/source/blender/nodes/shader/nodes/node_shader_bump.c	2013-05-08 13:19:55 UTC (rev 56574)
+++ trunk/blender/source/blender/nodes/shader/nodes/node_shader_bump.c	2013-05-08 13:23:13 UTC (rev 56575)
@@ -36,8 +36,9 @@
 
 /* **************** BUMP ******************** */ 
 static bNodeSocketTemplate sh_node_bump_in[] = {
-	{ SOCK_FLOAT, 1, "Strength",	0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f},
-	{ SOCK_FLOAT, 1, "Height",		1.0f, 1.0f, 1.0f, 1.0f, -1000.0f, 1000.0f, PROP_NONE, SOCK_HIDE_VALUE},
+	{ SOCK_FLOAT, 1, N_("Strength"),	0.1f, 0.0f, 0.0f, 0.0f, 0.0f, 10.0f},
+	{ SOCK_FLOAT, 1, N_("Height"),		1.0f, 1.0f, 1.0f, 1.0f, -1000.0f, 1000.0f, PROP_NONE, SOCK_HIDE_VALUE},
+	{ SOCK_VECTOR, 1, N_("Normal"),	0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE},
 	{ -1, 0, "" }
 };
 




More information about the Bf-blender-cvs mailing list