diff options
author | Matt Ebb <matt@mke3.net> | 2010-07-22 15:54:12 +0400 |
---|---|---|
committer | Matt Ebb <matt@mke3.net> | 2010-07-22 15:54:12 +0400 |
commit | 5d2e08cdee2bf5fd546a08eef4bdcbcc2f63d665 (patch) | |
tree | 000d8e15a19f86bf935469dd9d22fd243f765099 /source/blender/render/intern/include | |
parent | 33cb2f93ff2e02ac45c20e6b4251a48600a83cb0 (diff) |
Fix for volume render light cache:
Now the bounding box for the light cache's voxel grid is calculated in
global space, rather than camera space as it was previously. This fixes
flickering lighting on static volumes with camera motion, caused by
the camera space bounding box changing from frame to frame.
Diffstat (limited to 'source/blender/render/intern/include')
-rw-r--r-- | source/blender/render/intern/include/render_types.h | 2 | ||||
-rw-r--r-- | source/blender/render/intern/include/volume_precache.h | 6 |
2 files changed, 6 insertions, 2 deletions
diff --git a/source/blender/render/intern/include/render_types.h b/source/blender/render/intern/include/render_types.h index 331474a85e3..2b0de46f2e6 100644 --- a/source/blender/render/intern/include/render_types.h +++ b/source/blender/render/intern/include/render_types.h @@ -464,6 +464,7 @@ typedef struct VolPrecachePart struct RayObject *tree; struct ShadeInput *shi; struct ObjectInstanceRen *obi; + float viewmat[4][4]; int num; int minx, maxx; int miny, maxy; @@ -477,6 +478,7 @@ typedef struct VolPrecachePart typedef struct VolumePrecache { int res[3]; + float *bbmin, *bbmax; float *data_r; float *data_g; float *data_b; diff --git a/source/blender/render/intern/include/volume_precache.h b/source/blender/render/intern/include/volume_precache.h index 73e0a3e0415..3ddf8380241 100644 --- a/source/blender/render/intern/include/volume_precache.h +++ b/source/blender/render/intern/include/volume_precache.h @@ -25,9 +25,11 @@ * * ***** END GPL LICENSE BLOCK ***** */ - + +void global_bounds_obi(Render *re, ObjectInstanceRen *obi, float *bbmin, float *bbmax); +int point_inside_volume_objectinstance(Render *re, ObjectInstanceRen *obi, float *co); + void volume_precache(Render *re); void free_volume_precache(Render *re); -int point_inside_volume_objectinstance(Render *re, ObjectInstanceRen *obi, float *co); #define VOL_MS_TIMESTEP 0.1f |