[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