[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