Log In
New Account
Home My Page Projects Blender 2.x BF release
Summary Activity Tracker SCM Files

Blender 2.6 Bug Tracker: Browse

[#24965] Strange smoke cache behavior

Date:
2010-11-29 02:39
Priority:
3
State:
Closed
Submitted by:
John Carpenter (zodiac)
Assigned to:
Janne Karhu (jhk)
Category:
Physics
Status:
Fixed / Closed
Relates to:
Duplicates:
Patches:
 
Summary:
Strange smoke cache behavior
Detailed description
SVN Revision: 33356 (compiled with scons)
Ubuntu 10.04
nVidia GeForce 8400 GS

I've noticed a lot of inconsistent and unusual behavior when trying to bake smoke simulations. See the attached .blend file. Here is a demonstration of "Free All Bakes" not doing what I would expect.

- Starting on Domain1, Smoke Cache -> Bake All Dynamics
- After baking, Alt-A and play one cycle, then stop and return to frame 1
- Under Smoke, enable Dissolve and set the Time to 2.
- Smoke Cache -> Free All Bakes
- Smoke Cache -> Bake All Dynamics (finishes quick)
- Using Alt-A to animate shows no change
- Delete the ~/blendcache_smokelab1-4 directory
- Smoke Cache -> Free All Bakes
- Smoke Cache -> Bake All Dynamics (actually bakes this time)
- Using Alt-A to animate shows the dissolve working as expected


Also of note is that the Domain2 smoke cache (type 3, flags 4) isn't a disk cache, unlike the Domain1 smoke cache (type 3, flags 68). In the blendcache_smokelab1-4 directory, I see cache1_s files, but not cache2_s files, although I don't see any obvious differences between the two.
#define PTCACHE_DISK_CACHE 64


Index: source/blender/editors/physics/physics_pointcache.c
===================================================================
--- source/blender/editors/physics/physics_pointcache.c (revision 33356)
+++ source/blender/editors/physics/physics_pointcache.c (working copy)
@@ -135,6 +135,7 @@

for(pid=pidlist.first; pid; pid=pid->next) {
pid->cache->flag &= ~PTCACHE_BAKED;
+ printf("here at ptcache_free_bake_all, freeing '%s' type %d, flags %d\n", pid->ob->id.name, pid->type, pid->cache->flag);
}

here at ptcache_free_bake_all, freeing 'OBEmitter2' type 1, flags 4
here at ptcache_free_bake_all, freeing 'OBEmitter1' type 1, flags 4
here at ptcache_free_bake_all, freeing 'OBDomain2' type 3, flags 4
here at ptcache_free_bake_all, freeing 'OBDomain2' type 4, flags 68
here at ptcache_free_bake_all, freeing 'OBDomain1' type 3, flags 68
here at ptcache_free_bake_all, freeing 'OBDomain1' type 4, flags 68

Followup

Message
  • Date: 2010-11-29 09:31
  • Sender: Janne Karhu
  • Assigned to self for investigation.
  • Date: 2010-11-30 22:32
  • Sender: Janne Karhu
  • Hmm, there were many strange things going on in this file and it actually inspired me to do a pretty major reorganization of how smoke uses cache, so thank you for the report! The issues in this report should be fixed with my recent commit. Closing the report.
 

Attached Files:

Name Date Download
smokelab1-4.blend.gz 2010-11-29 02:39 Download

Changes:

Field Old Value Date By
ResolutionInvestigate2010-11-30 22:32jhk
close_date2010-11-30 22:322010-11-30 22:32jhk
status_idOpen2010-11-30 22:32jhk
ResolutionNone2010-11-29 09:31jhk
assigned_tonone2010-11-29 09:31jhk
File Added13863: smokelab1-4.blend.gz2010-11-29 02:39zodiac