[Bf-blender-cvs] [20825728f20] upstream_cycles_texture_cache: Cycles: added ray differentials to henyey-greenstein phase function

Stefan Werner noreply at git.blender.org
Wed Jun 27 14:05:16 CEST 2018


Commit: 20825728f2095ff3879bd0c230bcdf0a87e09637
Author: Stefan Werner
Date:   Thu Aug 10 13:36:29 2017 +0200
Branches: upstream_cycles_texture_cache
https://developer.blender.org/rB20825728f2095ff3879bd0c230bcdf0a87e09637

Cycles: added ray differentials to henyey-greenstein phase function

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

M	intern/cycles/kernel/closure/volume.h

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

diff --git a/intern/cycles/kernel/closure/volume.h b/intern/cycles/kernel/closure/volume.h
index da791e9aa73..31e617d6bfe 100644
--- a/intern/cycles/kernel/closure/volume.h
+++ b/intern/cycles/kernel/closure/volume.h
@@ -125,9 +125,10 @@ ccl_device int volume_henyey_greenstein_sample(const ShaderClosure *sc, float3 I
 	*eval = make_float3(*pdf, *pdf, *pdf); /* perfect importance sampling */
 
 #ifdef __RAY_DIFFERENTIALS__
-	/* todo: implement ray differential estimation */
-	*domega_in_dx = make_float3(0.0f, 0.0f, 0.0f);
-	*domega_in_dy = make_float3(0.0f, 0.0f, 0.0f);
+	make_orthonormals(-I-dIdx, &T, &B);
+	*domega_in_dx = sin_theta * cos_phi * T + sin_theta * sin_phi * B + cos_theta * (-I-dIdx) - *omega_in;
+	make_orthonormals(-I-dIdy, &T, &B);
+	*domega_in_dy = sin_theta * cos_phi * T + sin_theta * sin_phi * B + cos_theta * (-I-dIdy) - *omega_in ;
 #endif
 
 	return LABEL_VOLUME_SCATTER;



More information about the Bf-blender-cvs mailing list