[Bf-blender-cvs] [280fc52ba2f] cycles_texture_cache: Cycles: wider ray differential calculation for diffuse components of principled BSDF
Stefan Werner
noreply at git.blender.org
Mon Nov 27 20:40:26 CET 2017
Commit: 280fc52ba2ff2468cd76f6dfa400aba8f266f846
Author: Stefan Werner
Date: Fri May 12 16:51:11 2017 +0200
Branches: cycles_texture_cache
https://developer.blender.org/rB280fc52ba2ff2468cd76f6dfa400aba8f266f846
Cycles: wider ray differential calculation for diffuse components of principled BSDF
===================================================================
M intern/cycles/kernel/closure/bsdf_principled_diffuse.h
M intern/cycles/kernel/closure/bsdf_principled_sheen.h
===================================================================
diff --git a/intern/cycles/kernel/closure/bsdf_principled_diffuse.h b/intern/cycles/kernel/closure/bsdf_principled_diffuse.h
index f8ca64293b0..39a976468bd 100644
--- a/intern/cycles/kernel/closure/bsdf_principled_diffuse.h
+++ b/intern/cycles/kernel/closure/bsdf_principled_diffuse.h
@@ -110,8 +110,10 @@ ccl_device int bsdf_principled_diffuse_sample(const ShaderClosure *sc,
#ifdef __RAY_DIFFERENTIALS__
// TODO: find a better approximation for the diffuse bounce
- *domega_in_dx = -((2 * dot(N, dIdx)) * N - dIdx);
- *domega_in_dy = -((2 * dot(N, dIdy)) * N - dIdy);
+ *domega_in_dx = (2.0f * dot(N, dIdx)) * N - dIdx;
+ *domega_in_dy = (2.0f * dot(N, dIdy)) * N - dIdy;
+ *domega_in_dx *= 125.0f;
+ *domega_in_dy *= 125.0f;
#endif
}
else {
diff --git a/intern/cycles/kernel/closure/bsdf_principled_sheen.h b/intern/cycles/kernel/closure/bsdf_principled_sheen.h
index f4476bfecd0..09f4279771c 100644
--- a/intern/cycles/kernel/closure/bsdf_principled_sheen.h
+++ b/intern/cycles/kernel/closure/bsdf_principled_sheen.h
@@ -96,8 +96,10 @@ ccl_device int bsdf_principled_sheen_sample(const ShaderClosure *sc,
#ifdef __RAY_DIFFERENTIALS__
// TODO: find a better approximation for the diffuse bounce
- *domega_in_dx = -((2 * dot(N, dIdx)) * N - dIdx);
- *domega_in_dy = -((2 * dot(N, dIdy)) * N - dIdy);
+ *domega_in_dx = (2.0f * dot(N, dIdx)) * N - dIdx;
+ *domega_in_dy = (2.0f * dot(N, dIdy)) * N - dIdy;
+ *domega_in_dx *= 125.0f;
+ *domega_in_dy *= 125.0f;
#endif
}
else {
More information about the Bf-blender-cvs
mailing list