[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19121] branches/sim_physics/source/ blender/render/intern: * Fix for a small bug where multiple scattering wasn 't being enabled properly.
Matt Ebb
matt at mke3.net
Thu Feb 26 01:13:43 CET 2009
Revision: 19121
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19121
Author: broken
Date: 2009-02-26 01:13:40 +0100 (Thu, 26 Feb 2009)
Log Message:
-----------
* Fix for a small bug where multiple scattering wasn't being enabled properly.
* Also a MSVC compile fix
Modified Paths:
--------------
branches/sim_physics/source/blender/render/intern/include/volume_precache.h
branches/sim_physics/source/blender/render/intern/source/volume_precache.c
branches/sim_physics/source/blender/render/intern/source/volumetric.c
Modified: branches/sim_physics/source/blender/render/intern/include/volume_precache.h
===================================================================
--- branches/sim_physics/source/blender/render/intern/include/volume_precache.h 2009-02-25 20:07:45 UTC (rev 19120)
+++ branches/sim_physics/source/blender/render/intern/include/volume_precache.h 2009-02-26 00:13:40 UTC (rev 19121)
@@ -29,5 +29,6 @@
void volume_precache(Render *re);
void free_volume_precache(Render *re);
int point_inside_volume_objectinstance(ObjectInstanceRen *obi, float *co);
+int using_lightcache(Material *ma);
#define VOL_MS_TIMESTEP 0.1f
\ No newline at end of file
Modified: branches/sim_physics/source/blender/render/intern/source/volume_precache.c
===================================================================
--- branches/sim_physics/source/blender/render/intern/source/volume_precache.c 2009-02-25 20:07:45 UTC (rev 19120)
+++ branches/sim_physics/source/blender/render/intern/source/volume_precache.c 2009-02-26 00:13:40 UTC (rev 19121)
@@ -49,6 +49,9 @@
#include "volumetric.h"
#include "volume_precache.h"
+#if defined( _MSC_VER ) && !defined( __cplusplus )
+# define inline __inline
+#endif // defined( _MSC_VER ) && !defined( __cplusplus )
#include "BKE_global.h"
@@ -247,8 +250,7 @@
const float fac = ma->vol_ms_intensity;
const float simframes = ma->vol_ms_steps;
const int shade_type = ma->vol_shade_type;
- const float dt = VOL_MS_TIMESTEP;
-
+
int i, j, k, m;
int n = res;
const int size = (n+2)*(n+2)*(n+2);
@@ -595,6 +597,12 @@
}
}
+int using_lightcache(Material *ma)
+{
+ return (((ma->vol_shadeflag & MA_VOL_PRECACHESHADING) && (ma->vol_shade_type == MA_VOL_SHADE_SINGLE))
+ || (ELEM(ma->vol_shade_type, MA_VOL_SHADE_MULTIPLE, MA_VOL_SHADE_SINGLEPLUSMULTIPLE)));
+}
+
/* loop through all objects (and their associated materials)
* marked for pre-caching in convertblender.c, and pre-cache them */
void volume_precache(Render *re)
@@ -606,7 +614,7 @@
if (re->r.scemode & R_PREVIEWBUTS) return;
for(vo= re->volumes.first; vo; vo= vo->next) {
- if (vo->ma->vol_shadeflag & MA_VOL_PRECACHESHADING) {
+ if (using_lightcache(vo->ma)) {
for(obi= re->instancetable.first; obi; obi= obi->next) {
if (obi->obr == vo->obr) {
vol_precache_objectinstance_threads(re, obi, vo->ma, obi->obr->boundbox[0], obi->obr->boundbox[1]);
Modified: branches/sim_physics/source/blender/render/intern/source/volumetric.c
===================================================================
--- branches/sim_physics/source/blender/render/intern/source/volumetric.c 2009-02-25 20:07:45 UTC (rev 19120)
+++ branches/sim_physics/source/blender/render/intern/source/volumetric.c 2009-02-26 00:13:40 UTC (rev 19121)
@@ -514,9 +514,7 @@
if (R.r.scemode & R_PREVIEWBUTS) {
vol_get_scattering(shi, scatter_col, step_mid, stepsize, density);
- } else if (((shi->mat->vol_shadeflag & MA_VOL_PRECACHESHADING) &&
- (shi->mat->vol_shade_type == MA_VOL_SHADE_SINGLE)) ||
- (ELEM(shi->mat->vol_shade_type, MA_VOL_SHADE_MULTIPLE, MA_VOL_SHADE_SINGLEPLUSMULTIPLE))) {
+ } else if (using_lightcache(shi->mat)) {
vol_get_precached_scattering(shi, scatter_col, step_mid);
} else
vol_get_scattering(shi, scatter_col, step_mid, stepsize, density);
More information about the Bf-blender-cvs
mailing list