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);


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to