[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33659] trunk/blender/source/blender: Fix for [#25198] Smoke gets shown before simulation starts

Janne Karhu jhkarh at gmail.com
Tue Dec 14 15:45:56 CET 2010


Revision: 33659
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33659
Author:   jhk
Date:     2010-12-14 15:45:56 +0100 (Tue, 14 Dec 2010)

Log Message:
-----------
Fix for [#25198] Smoke gets shown before simulation starts
* Smoke is now only drawn/rendered after the simulation frame range starts.
* This does not apply to simulation end frame though, so that any remaining smoke can for example be faded away nicely through material settings.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/drawobject.c
    trunk/blender/source/blender/render/intern/source/voxeldata.c

Modified: trunk/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/drawobject.c	2010-12-14 13:56:10 UTC (rev 33658)
+++ trunk/blender/source/blender/editors/space_view3d/drawobject.c	2010-12-14 14:45:56 UTC (rev 33659)
@@ -6119,7 +6119,9 @@
 		// only draw domains
 		if(smd->domain && smd->domain->fluid)
 		{
-			if(!smd->domain->wt || !(smd->domain->viewsettings & MOD_SMOKE_VIEW_SHOWBIG))
+			if(CFRA < smd->domain->point_cache[0]->startframe)
+				; /* don't show smoke before simulation starts, this could be made an option in the future */
+			else if(!smd->domain->wt || !(smd->domain->viewsettings & MOD_SMOKE_VIEW_SHOWBIG))
 			{
 // #if 0
 				smd->domain->tex = NULL;

Modified: trunk/blender/source/blender/render/intern/source/voxeldata.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/voxeldata.c	2010-12-14 13:56:10 UTC (rev 33658)
+++ trunk/blender/source/blender/render/intern/source/voxeldata.c	2010-12-14 14:45:56 UTC (rev 33659)
@@ -47,6 +47,7 @@
 #include "smoke_API.h"
 
 #include "DNA_texture_types.h"
+#include "DNA_object_force.h"
 #include "DNA_object_types.h"
 #include "DNA_modifier_types.h"
 #include "DNA_smoke_types.h"
@@ -179,7 +180,7 @@
 	return 1;
 }
 
-static void init_frame_smoke(VoxelData *vd)
+static void init_frame_smoke(VoxelData *vd, float cfra)
 {
 	Object *ob;
 	ModifierData *md;
@@ -195,8 +196,9 @@
 
 		
 		if(smd->domain && smd->domain->fluid) {
-			
-			if (vd->smoked_type == TEX_VD_SMOKEHEAT) {
+			if(cfra < smd->domain->point_cache[0]->startframe)
+				; /* don't show smoke before simulation starts, this could be made an option in the future */
+			else if (vd->smoked_type == TEX_VD_SMOKEHEAT) {
 				int totRes;
 				float *heat;
 				int i;
@@ -294,7 +296,7 @@
 			load_frame_image_sequence(vd, tex);
 			return;
 		case TEX_VD_SMOKE:
-			init_frame_smoke(vd);
+			init_frame_smoke(vd, re->r.cfra);
 			return;
 		case TEX_VD_BLENDERVOXEL:
 			BLI_path_abs(path, G.main->name);





More information about the Bf-blender-cvs mailing list