[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59476] trunk/blender/intern/cycles/kernel /kernel_subsurface.h: Fix issue in last subsurface commit with branched path tracing, was rendering too bright.

Brecht Van Lommel brechtvanlommel at pandora.be
Sat Aug 24 17:36:15 CEST 2013


Revision: 59476
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59476
Author:   blendix
Date:     2013-08-24 15:36:14 +0000 (Sat, 24 Aug 2013)
Log Message:
-----------
Fix issue in last subsurface commit with branched path tracing, was rendering too bright.

Modified Paths:
--------------
    trunk/blender/intern/cycles/kernel/kernel_subsurface.h

Modified: trunk/blender/intern/cycles/kernel/kernel_subsurface.h
===================================================================
--- trunk/blender/intern/cycles/kernel/kernel_subsurface.h	2013-08-24 15:31:47 UTC (rev 59475)
+++ trunk/blender/intern/cycles/kernel/kernel_subsurface.h	2013-08-24 15:36:14 UTC (rev 59476)
@@ -221,18 +221,26 @@
 	disk_N = sd->Ng;
 	make_orthonormals(disk_N, &disk_T, &disk_B);
 
-	if(sd->randb_closure < 0.5f) {
+	/* reusing variable for picking the closure gives a bit nicer stratification
+	 * for path tracer, for branched we do all closures so it doesn't help */
+	float axisu = (all)? disk_u: sd->randb_closure;
+
+	if(axisu < 0.5f) {
 		pick_pdf_N = 0.5f;
 		pick_pdf_T = 0.25f;
 		pick_pdf_B = 0.25f;
+		if(all)
+			disk_u *= 2.0f;
 	}
-	else if(sd->randb_closure < 0.75f) {
+	else if(axisu < 0.75f) {
 		float3 tmp = disk_N;
 		disk_N = disk_T;
 		disk_T = tmp;
 		pick_pdf_N = 0.25f;
 		pick_pdf_T = 0.5f;
 		pick_pdf_B = 0.25f;
+		if(all)
+			disk_u = (disk_u - 0.5f)*4.0f;
 	}
 	else {
 		float3 tmp = disk_N;
@@ -241,6 +249,8 @@
 		pick_pdf_N = 0.25f;
 		pick_pdf_T = 0.25f;
 		pick_pdf_B = 0.5f;
+		if(all)
+			disk_u = (disk_u - 0.75f)*4.0f;
 	}
 
 	/* sample point on disk */




More information about the Bf-blender-cvs mailing list