[Bf-blender-cvs] [5cc1d5fe17c] master: Fix T54107: bevel shader + normal map gives wrong result.

Brecht Van Lommel noreply at git.blender.org
Thu Feb 22 00:58:49 CET 2018


Commit: 5cc1d5fe17c4d22ae310fc1a74c626c0bb25aef7
Author: Brecht Van Lommel
Date:   Tue Feb 20 20:24:40 2018 +0100
Branches: master
https://developer.blender.org/rB5cc1d5fe17c4d22ae310fc1a74c626c0bb25aef7

Fix T54107: bevel shader + normal map gives wrong result.

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

M	intern/cycles/kernel/shaders/node_bevel.osl
M	intern/cycles/kernel/svm/svm_bevel.h

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

diff --git a/intern/cycles/kernel/shaders/node_bevel.osl b/intern/cycles/kernel/shaders/node_bevel.osl
index a5b185b6b4c..9c4ca15be17 100644
--- a/intern/cycles/kernel/shaders/node_bevel.osl
+++ b/intern/cycles/kernel/shaders/node_bevel.osl
@@ -23,9 +23,9 @@ shader node_bevel(
 	output normal NormalOut = N)
 {
 	/* Abuse texture call with special @bevel token. */
-	NormalOut = (normal)(color)texture("@bevel", samples, Radius);
+	vector bevel_N = (normal)(color)texture("@bevel", samples, Radius);
 
 	/* Preserve input normal. */
-	NormalOut = normalize(N + (NormalOut - NormalIn));
+	NormalOut = normalize(NormalIn + (bevel_N - N));
 }
 
diff --git a/intern/cycles/kernel/svm/svm_bevel.h b/intern/cycles/kernel/svm/svm_bevel.h
index dcfe4ad71b8..6d5a10db98f 100644
--- a/intern/cycles/kernel/svm/svm_bevel.h
+++ b/intern/cycles/kernel/svm/svm_bevel.h
@@ -216,7 +216,7 @@ ccl_device void svm_node_bevel(
 	if(stack_valid(normal_offset)) {
 		/* Preserve input normal. */
 		float3 ref_N = stack_load_float3(stack, normal_offset);
-		bevel_N = normalize(sd->N + (bevel_N - ref_N));
+		bevel_N = normalize(ref_N + (bevel_N - sd->N));;
 	}
 
 	stack_store_float3(stack, out_offset, bevel_N);



More information about the Bf-blender-cvs mailing list