[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