[Bf-blender-cvs] [fb71b93] openvdb: Fix crash happening when exporting the simulation right after resetting it (by enabling adaptive domain, high resolution or whatever).

Kévin Dietrich noreply at git.blender.org
Fri Jun 5 14:06:28 CEST 2015


Commit: fb71b93b43d65352c9dcdfd45dfba38ea01e23be
Author: Kévin Dietrich
Date:   Sat May 16 17:10:27 2015 +0200
Branches: openvdb
https://developer.blender.org/rBfb71b93b43d65352c9dcdfd45dfba38ea01e23be

Fix crash happening when exporting the simulation right after resetting
it (by enabling adaptive domain, high resolution or whatever).

The fluid description should be set after the simulation was
initialiazed as it contains information taken from fields which wouldn't
exist otherwise.

===================================================================

M	source/blender/blenkernel/intern/smoke.c

===================================================================

diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index dc0fbf1..81faf58 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -3112,6 +3112,7 @@ void smokeModifier_OpenVDB_export(SmokeModifierData *smd, Scene *scene, Object *
                                   update_cb update, void *update_cb_data)
 {
 	SmokeDomainSettings *sds = smd->domain;
+	FluidDomainDescr descr;
 	int orig_frame, fr, cancel = 0;
 	float progress;
 	const char *relbase = modifier_path_relbase(ob);
@@ -3120,14 +3121,14 @@ void smokeModifier_OpenVDB_export(SmokeModifierData *smd, Scene *scene, Object *
 	orig_frame = scene->r.cfra;
 
 	for (fr = sds->startframe; fr <= sds->endframe; fr++) {
-		FluidDomainDescr descr = get_fluid_description(sds, ob);
 		/* smd->time is overwritten with scene->r.cfra in smokeModifier_process,
 		 * so we can't use it here... */
 		scene->r.cfra = fr;
 
 		cache_filename(filename, sds->path, relbase, fr);
 
-		smokeModifier_process(smd, scene, ob, dm, false);		
+		smokeModifier_process(smd, scene, ob, dm, false);
+		descr = get_fluid_description(sds, ob);
 		OpenVDB_export_fluid(sds->fluid, sds->wt, descr, filename, sds->shadow);
 
 		progress = (fr - sds->startframe) / (float)sds->endframe;




More information about the Bf-blender-cvs mailing list