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


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to