Cached smoke wasn't being drawn on file load before going to simulation start frame.
This commit is contained in:
@@ -1353,9 +1353,11 @@ void smokeModifier_do(SmokeModifierData *smd, Scene *scene, Object *ob, DerivedM
|
||||
}
|
||||
}
|
||||
|
||||
if(!smd->domain->fluid && (framenr != startframe) && (cache->flag & PTCACHE_BAKED)==0)
|
||||
if(!smd->domain->fluid && (framenr != startframe) && (smd->domain->flags & MOD_SMOKE_FILE_LOAD)==0 && (cache->flag & PTCACHE_BAKED)==0)
|
||||
return;
|
||||
|
||||
smd->domain->flags &= ~MOD_SMOKE_FILE_LOAD;
|
||||
|
||||
if(framenr < startframe)
|
||||
framenr = startframe;
|
||||
|
||||
|
||||
@@ -3644,6 +3644,8 @@ static void lib_link_object(FileData *fd, Main *main)
|
||||
smd->domain->fluid_group = newlibadr_us(fd, ob->id.lib, smd->domain->fluid_group);
|
||||
|
||||
smd->domain->effector_weights->group = newlibadr(fd, ob->id.lib, smd->domain->effector_weights->group);
|
||||
|
||||
smd->domain->flags |= MOD_SMOKE_FILE_LOAD; /* flag for refreshing the simulation after loading */
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -35,6 +35,7 @@
|
||||
#define MOD_SMOKE_DISSOLVE_LOG (1<<3) /* using 1/x for dissolve */
|
||||
|
||||
#define MOD_SMOKE_HIGH_SMOOTH (1<<5) /* smoothens high res emission*/
|
||||
#define MOD_SMOKE_FILE_LOAD (1<<6) /* flag for file load */
|
||||
|
||||
/* noise */
|
||||
#define MOD_SMOKE_NOISEWAVE (1<<0)
|
||||
|
||||
Reference in New Issue
Block a user