[Bf-blender-cvs] [9575a37] soc-2014-fluid: loading and displaying wavelets smoke

Roman Pogribnyi noreply at git.blender.org
Wed Aug 13 22:31:14 CEST 2014


Commit: 9575a37b208f01901b41de511b00b68a1064f96f
Author: Roman Pogribnyi
Date:   Wed Aug 13 16:06:04 2014 +0200
Branches: soc-2014-fluid
https://developer.blender.org/rB9575a37b208f01901b41de511b00b68a1064f96f

loading and displaying wavelets smoke

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

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

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

diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index 46c8263..4a2b52d 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -2783,10 +2783,12 @@ static void smokeModifier_process(SmokeModifierData *smd, Scene *scene, Object *
 				sprintf(buff, wavelets_name_format, scene->r.cfra - smd->domain->manta_start_frame);
 				read_wavelets = smoke_mantaflow_read(smd->domain, buff, 1);	
 			}
-			if(read_density && read_wavelets)
-			{	
-				BKE_ptcache_write(&pid, framenr);
-			}
+			smoke_calc_transparency(sds, scene);
+			return;
+			//			if(read_density && read_wavelets)
+//			{	
+//				BKE_ptcache_write(&pid, framenr);
+//			}
 		}
 		
 		/* try to read from cache */
@@ -2801,57 +2803,57 @@ static void smokeModifier_process(SmokeModifierData *smd, Scene *scene, Object *
 			return;
 		}
 		
-//		/* only calculate something when we advanced a single frame */
-//		if (framenr != (int)smd->time + 1)
-//			return;
-//
-//		/* don't simulate if viewing start frame, but scene frame is not real start frame */
-//		if (framenr != scene->r.cfra)
-//			return;
-//
-//		tstart();
-//
-//		/* if on second frame, write cache for first frame */
-//		if ((int)smd->time == startframe && (cache->flag & PTCACHE_OUTDATED || cache->last_exact == 0)) {
-//			BKE_ptcache_write(&pid, startframe);
-//		}
-//
-//		// set new time
-//		smd->time = scene->r.cfra;
-//
-//		/* do simulation */
-//
-//		// simulate the actual smoke (c++ code in intern/smoke)
-//		// DG: interesting commenting this line + deactivating loading of noise files
-//		if (framenr != startframe)
-//		{
-//			if (sds->flags & MOD_SMOKE_DISSOLVE) {
-//				/* low res dissolve */
-//				smoke_dissolve(sds->fluid, sds->diss_speed, sds->flags & MOD_SMOKE_DISSOLVE_LOG);
-//				/* high res dissolve */
-//				if (sds->wt) {
-//					smoke_dissolve_wavelet(sds->wt, sds->diss_speed, sds->flags & MOD_SMOKE_DISSOLVE_LOG);
-//				}
-//
-//			}
-//
-//			step(scene, ob, smd, dm, scene->r.frs_sec / scene->r.frs_sec_base, for_render);
-//		}
-//
-//		// create shadows before writing cache so they get stored
-//		smoke_calc_transparency(sds, scene);
-//
-//		if (sds->wt)
-//		{
-//			smoke_turbulence_step(sds->wt, sds->fluid);
-//		}
-//
-//		BKE_ptcache_validate(cache, framenr);
-//		if (framenr != startframe)
-//			BKE_ptcache_write(&pid, framenr);
-//
-//		tend();
-//		// printf ( "Frame: %d, Time: %f\n\n", (int)smd->time, (float) tval() );
+		/* only calculate something when we advanced a single frame */
+		if (framenr != (int)smd->time + 1)
+			return;
+
+		/* don't simulate if viewing start frame, but scene frame is not real start frame */
+		if (framenr != scene->r.cfra)
+			return;
+
+		tstart();
+
+		/* if on second frame, write cache for first frame */
+		if ((int)smd->time == startframe && (cache->flag & PTCACHE_OUTDATED || cache->last_exact == 0)) {
+			BKE_ptcache_write(&pid, startframe);
+		}
+
+		// set new time
+		smd->time = scene->r.cfra;
+
+		/* do simulation */
+
+		// simulate the actual smoke (c++ code in intern/smoke)
+		// DG: interesting commenting this line + deactivating loading of noise files
+		if (framenr != startframe)
+		{
+			if (sds->flags & MOD_SMOKE_DISSOLVE) {
+				/* low res dissolve */
+				smoke_dissolve(sds->fluid, sds->diss_speed, sds->flags & MOD_SMOKE_DISSOLVE_LOG);
+				/* high res dissolve */
+				if (sds->wt) {
+					smoke_dissolve_wavelet(sds->wt, sds->diss_speed, sds->flags & MOD_SMOKE_DISSOLVE_LOG);
+				}
+
+			}
+
+			step(scene, ob, smd, dm, scene->r.frs_sec / scene->r.frs_sec_base, for_render);
+		}
+
+		// create shadows before writing cache so they get stored
+		smoke_calc_transparency(sds, scene);
+
+		if (sds->wt)
+		{
+			smoke_turbulence_step(sds->wt, sds->fluid);
+		}
+
+		BKE_ptcache_validate(cache, framenr);
+		if (framenr != startframe)
+			BKE_ptcache_write(&pid, framenr);
+
+		tend();
+		// printf ( "Frame: %d, Time: %f\n\n", (int)smd->time, (float) tval() );
 	}
 }




More information about the Bf-blender-cvs mailing list