diff options
author | Daniel Genrich <daniel.genrich@gmx.net> | 2009-09-14 14:21:41 +0400 |
---|---|---|
committer | Daniel Genrich <daniel.genrich@gmx.net> | 2009-09-14 14:21:41 +0400 |
commit | ce70ed260b45c48ee43e5f13b372cc0d68f76be4 (patch) | |
tree | ec5b48ba20ab30dd3aebdbe243dad9f1eb1b4e48 | |
parent | 0338b05a64184ce1a439a418ebc4e315185c1eec (diff) |
Smoke:
* Bugifx for no shadow on startframe when loaded from cache
-rw-r--r-- | source/blender/blenkernel/intern/smoke.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c index 67744ab56a2..6485e367b78 100644 --- a/source/blender/blenkernel/intern/smoke.c +++ b/source/blender/blenkernel/intern/smoke.c @@ -1179,6 +1179,11 @@ void smokeModifier_do(SmokeModifierData *smd, Scene *scene, Object *ob, DerivedM // simulate the actual smoke (c++ code in intern/smoke) if(framenr!=startframe) smoke_step(sds->fluid, smd->time); + + // create shadows before writing cache so we get nice shadows for sstartframe, too + if(get_lamp(scene, light)) + smoke_calc_transparency(sds->shadow, smoke_get_density(sds->fluid), sds->p0, sds->p1, sds->res, sds->dx, light, calc_voxel_transp, -7.0*sds->dx); + BKE_ptcache_write_cache(&pid, framenr); if(sds->wt) @@ -1191,9 +1196,6 @@ void smokeModifier_do(SmokeModifierData *smd, Scene *scene, Object *ob, DerivedM BKE_ptcache_write_cache(&pid_wt, framenr); } - if(get_lamp(scene, light)) - smoke_calc_transparency(sds->shadow, smoke_get_density(sds->fluid), sds->p0, sds->p1, sds->res, sds->dx, light, calc_voxel_transp, -7.0*sds->dx); - tend(); printf ( "Frame: %d, Time: %f\n", (int)smd->time, ( float ) tval() ); } |