[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27749] branches/render25/source/blender/ render/intern/source/cache.c: Render Branch: Avoid doing irradiance/ pixel cache on some materials that don't need it.

Brecht Van Lommel brecht at blender.org
Thu Mar 25 17:28:53 CET 2010


Revision: 27749
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27749
Author:   blendix
Date:     2010-03-25 17:28:44 +0100 (Thu, 25 Mar 2010)

Log Message:
-----------
Render Branch: Avoid doing irradiance/pixel cache on some materials that don't need it.

Modified Paths:
--------------
    branches/render25/source/blender/render/intern/source/cache.c

Modified: branches/render25/source/blender/render/intern/source/cache.c
===================================================================
--- branches/render25/source/blender/render/intern/source/cache.c	2010-03-25 16:02:00 UTC (rev 27748)
+++ branches/render25/source/blender/render/intern/source/cache.c	2010-03-25 16:28:44 UTC (rev 27749)
@@ -48,6 +48,18 @@
 #include "render_types.h"
 #include "shading.h"
 
+/******************************** Utilities **********************************/
+
+static int mat_need_cache(Material *ma)
+{
+	if(ma->mode & (MA_SHLESS|MA_ONLYSHADOW))
+		return 0;
+	else if(ma->amb == 0.0f && !(ma->mapto & MAP_AMB))
+		return 0;
+	
+	return 1;
+}
+
 /******************************* Pixel Cache *********************************/
 
 #define CACHE_STEP 3
@@ -213,7 +225,7 @@
 			shade_samples_from_pixel(re, ssamp, &row[0], x, y);
 
 			shi= ssamp->shi;
-			if(shi->primitive.vlr) {
+			if(shi->primitive.vlr && mat_need_cache(shi->material.mat)) {
 				disk_occlusion_sample_direct(re, shi);
 
 				copy_v3_v3(sample->co, shi->geometry.co);
@@ -1065,6 +1077,9 @@
 						float *indirect= (re->db.wrld.mode & WO_INDIRECT_LIGHT)? shi->shading.indirect: NULL;
 						int added;
 
+						if(!mat_need_cache(shi->material.mat))
+							continue;
+
 						if(shi->primitive.strand) {
 							added= 0;
 #if 0





More information about the Bf-blender-cvs mailing list