[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22785] branches/blender2.5/blender: Smoke :

Daniel Genrich daniel.genrich at gmx.net
Tue Aug 25 23:53:53 CEST 2009


Revision: 22785
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22785
Author:   genscher
Date:     2009-08-25 23:53:52 +0200 (Tue, 25 Aug 2009)

Log Message:
-----------
Smoke:
* Deleting high res modifier again
* fixing smoke + continue physics drawing
* fixing cache reset when changing dissolve

Modified Paths:
--------------
    branches/blender2.5/blender/release/ui/buttons_physics_smoke.py
    branches/blender2.5/blender/source/blender/blenkernel/BKE_smoke.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/modifier.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/pointcache.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/smoke.c
    branches/blender2.5/blender/source/blender/editors/object/object_modifier.c
    branches/blender2.5/blender/source/blender/editors/space_buttons/buttons_context.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_modifier_types.h
    branches/blender2.5/blender/source/blender/makesdna/DNA_smoke_types.h
    branches/blender2.5/blender/source/blender/makesrna/RNA_access.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_modifier.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_smoke.c

Removed Paths:
-------------
    branches/blender2.5/blender/source/blender/blenkernel/intern/smokehighres.c

Modified: branches/blender2.5/blender/release/ui/buttons_physics_smoke.py
===================================================================
--- branches/blender2.5/blender/release/ui/buttons_physics_smoke.py	2009-08-25 21:29:17 UTC (rev 22784)
+++ branches/blender2.5/blender/release/ui/buttons_physics_smoke.py	2009-08-25 21:53:52 UTC (rev 22785)
@@ -125,7 +125,7 @@
 	def poll(self, context):
 		md = context.smoke
 		if md:
-				return (md.smoke_type == 'TYPE_DOMAIN')
+			return (md.smoke_type == 'TYPE_DOMAIN')
 		
 		return False
 
@@ -202,7 +202,7 @@
 	def draw(self, context):
 		layout = self.layout
 		
-		md = context.smoke_hr
+		md = context.smoke.domain_settings
 		
 		if md:
 		
@@ -223,12 +223,12 @@
 	__default_closed__ = True
 
 	def poll(self, context):
-		return (context.smoke_hr != None)
+		return (context.smoke != None)
 
 	def draw(self, context):
 		layout = self.layout
 
-		md = context.smoke_hr
+		md = context.smoke
 		
 		if md:
 			

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_smoke.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_smoke.h	2009-08-25 21:29:17 UTC (rev 22784)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_smoke.h	2009-08-25 21:53:52 UTC (rev 22785)
@@ -40,9 +40,5 @@
 void smokeModifier_reset(struct SmokeModifierData *smd);
 void smokeModifier_createType(struct SmokeModifierData *smd);
 
-// high res modifier
-void smokeHRModifier_do(struct SmokeHRModifierData *shrmd, struct Scene *scene, struct Object *ob, int useRenderParams, int isFinalCalc);
-void smokeHRModifier_free(struct SmokeHRModifierData *shrmd);
 
-
 #endif /* BKE_SMOKE_H_ */

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/modifier.c	2009-08-25 21:29:17 UTC (rev 22784)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/modifier.c	2009-08-25 21:53:52 UTC (rev 22785)
@@ -5879,50 +5879,6 @@
 	*/
 }
 
-
-/* Smoke High Resolution */
-
-static void smokeHRModifier_initData(ModifierData *md) 
-{
-	SmokeHRModifierData *shrmd = (SmokeHRModifierData*) md;
-	
-	shrmd->wt = NULL;
-	shrmd->time = -1;
-	shrmd->strength = 2.0f;
-	shrmd->amplify = 1;
-	shrmd->noise = MOD_SMOKE_NOISEWAVE;
-	shrmd->point_cache = BKE_ptcache_add(&shrmd->ptcaches);
-	shrmd->point_cache->flag |= PTCACHE_DISK_CACHE;
-	shrmd->point_cache->step = 1;
-}
-
-static void smokeHRModifier_freeData(ModifierData *md)
-{
-	SmokeHRModifierData *shrmd = (SmokeHRModifierData*) md;
-	
-	smokeHRModifier_free (shrmd);
-}
-
-static void smokeHRModifier_deformVerts(
-					 ModifierData *md, Object *ob, DerivedMesh *derivedData,
-      float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc)
-{
-	SmokeHRModifierData *shrmd = (SmokeHRModifierData*) md;
-	smokeHRModifier_do(shrmd, md->scene, ob, useRenderParams, isFinalCalc);
-}
-
-static int smokeHRModifier_dependsOnTime(ModifierData *md)
-{
-	return 1;
-}
-
-static void smokeHRModifier_updateDepgraph(
-					 ModifierData *md, DagForest *forest, Scene *scene, Object *ob,
-      DagNode *obNode)
-{
-	;
-}
-
 /* Cloth */
 
 static void clothModifier_initData(ModifierData *md) 
@@ -8624,18 +8580,6 @@
 		mti->deformVerts = smokeModifier_deformVerts;
 		mti->dependsOnTime = smokeModifier_dependsOnTime;
 		mti->updateDepgraph = smokeModifier_updateDepgraph;
-
-		mti = INIT_TYPE(SmokeHR);
-		mti->type = eModifierTypeType_OnlyDeform;
-		mti->initData = smokeHRModifier_initData;
-		mti->freeData = smokeHRModifier_freeData; 
-		mti->flags = eModifierTypeFlag_AcceptsMesh 
-				| eModifierTypeFlag_UsesPointCache
-				| eModifierTypeFlag_Single
-				| eModifierTypeFlag_NoUserAdd;
-		mti->deformVerts = smokeHRModifier_deformVerts;
-		mti->dependsOnTime = smokeHRModifier_dependsOnTime;
-		mti->updateDepgraph = smokeHRModifier_updateDepgraph;
 	
 		mti = INIT_TYPE(Cloth);
 		mti->type = eModifierTypeType_Nonconstructive;

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/pointcache.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/pointcache.c	2009-08-25 21:29:17 UTC (rev 22784)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/pointcache.c	2009-08-25 21:53:52 UTC (rev 22785)
@@ -479,23 +479,6 @@
 		return 0;
 }
 
-static int ptcache_totpoint_smoke_turbulence(void *smoke_v)
-{
-	SmokeHRModifierData *shrmd= (SmokeHRModifierData *)smoke_v;
-	
-	if(shrmd->wt) {
-		/*
-		unsigned int res[3];
-
-		smoke_turbulence_get_res(sds->wt, res);
-		return res[0]*res[1]*res[2];
-		*/
-		return 0;
-	}
-	else
-		return 0;
-}
-
 // forward decleration
 static int ptcache_file_write(PTCacheFile *pf, void *f, size_t tot, int size);
 

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/smoke.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/smoke.c	2009-08-25 21:29:17 UTC (rev 22784)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/smoke.c	2009-08-25 21:53:52 UTC (rev 22785)
@@ -213,6 +213,14 @@
 		smd->time = scene->r.cfra;
 		smd->domain->firstframe = smd->time;
 
+		/*
+		if(!smd->domain->wt)
+		{
+			smd->domain->wt = smoke_turbulence_init(sds->res,  smd->domain->amplify + 1, smd->domain->noise);
+			smoke_turbulence_initBlenderRNA(smd->domain->wt, &smd->domain->strength);
+		}
+		*/
+
 		if(!smd->domain->view3d)
 		{
 			// TVox is for transparency
@@ -518,6 +526,9 @@
 		if(smd->domain->fluid)
 			smoke_free(smd->domain->fluid);
 
+		if(smd->domain->wt)
+			smoke_turbulence_free(smd->domain->wt);
+
 		BKE_ptcache_free_list(&smd->domain->ptcaches);
 		smd->domain->point_cache = NULL;
 
@@ -585,6 +596,12 @@
 				smoke_free(smd->domain->fluid);
 				smd->domain->fluid = NULL;
 			}
+
+			if(smd->domain->wt)
+			{
+				smoke_turbulence_free(smd->domain->wt);
+				smd->domain->wt = NULL;
+			}
 		
 			smd->domain->point_cache->flag &= ~PTCACHE_SIMULATION_VALID;
 			smd->domain->point_cache->flag |= PTCACHE_OUTDATED;
@@ -663,6 +680,10 @@
 			smd->domain->beta = 0.1;
 			smd->domain->flags = MOD_SMOKE_DISSOLVE_LOG;
 			smd->domain->diss_speed = 5;
+			smd->domain->strength = 2.0f;
+			smd->domain->amplify = 1;
+			smd->domain->noise = MOD_SMOKE_NOISEWAVE;
+			smd->domain->wt = NULL;
 
 			// init 3dview buffer
 			smd->domain->view3d = NULL;
@@ -783,6 +804,28 @@
 
 			smoke_simulate_domain(smd, scene, ob, dm);
 
+			{
+				// float light[3] = {0.0,0.0,0.0}; // TODO: take real LAMP coordinates - dg
+				Base *base_tmp = NULL;
+
+				for(base_tmp = scene->base.first; base_tmp; base_tmp= base_tmp->next) 
+				{
+					if(base_tmp->object->type == OB_LAMP) 
+					{
+						Lamp *la = (Lamp *)base_tmp->object->data;
+						
+						if(la->type == LA_LOCAL)
+						{
+							VECCOPY(light, base_tmp->object->obmat[3]);
+							have_lamp = 1;
+							break;
+						}
+					}
+				}
+			}
+
+			smoke_prepare_View(smd, (float)framenr, light, have_lamp);
+
 			return;
 		}
 		
@@ -885,11 +928,11 @@
 
 		BKE_ptcache_write_cache(&pid, framenr);
 
-		// printf("Writing cache_low\n");
+		// printf("Writing cache_low, %d\n", framenr);
 	
 
 		tend();
-		printf ( "Frame: %d, Time: %f\n", (int)smd->time, ( float ) tval() );
+		// printf ( "Frame: %d, Time: %f\n", (int)smd->time, ( float ) tval() );
 	}
 }
 

Deleted: branches/blender2.5/blender/source/blender/blenkernel/intern/smokehighres.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/smokehighres.c	2009-08-25 21:29:17 UTC (rev 22784)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/smokehighres.c	2009-08-25 21:53:52 UTC (rev 22785)
@@ -1,137 +0,0 @@
-/**
- * smokehighres.c
- *
- * $Id$
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- * The Original Code is Copyright (C) Blender Foundation.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): Daniel Genrich
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-/* Part of the code copied from elbeem fluid library, copyright by Nils Thuerey */
-
-#include "DNA_scene_types.h"
-#include "DNA_listBase.h"
-#include "DNA_modifier_types.h"
-#include "DNA_object_types.h"
-#include "DNA_smoke_types.h"
-
-#include "BKE_modifier.h"
-#include "BKE_smoke.h"
-#include "BKE_pointcache.h"
-
-#include "smoke_API.h"
-
-// we need different handling for the high-res feature
-/*
-if(bigdensity)
-{
-	// init all surrounding cells according to amplification, too
-	int i, j, k;
-
-	smoke_turbulence_get_res(smd->domain->wt, bigres);
-
-	for(i = 0; i < smd->domain->amplify + 1; i++)
-		for(j = 0; j < smd->domain->amplify + 1; j++)
-			for(k = 0; k < smd->domain->amplify + 1; k++)
-			{
-				index = smoke_get_index((smd->domain->amplify + 1)* cell[0] + i, bigres[0], (smd->domain->amplify + 1)* cell[1] + j, bigres[1], (smd->domain->amplify + 1)* cell[2] + k);
-				bigdensity[index] = sfs->density;
-			}
-}
-*/
-
-static void smokeHRinit(SmokeHRModifierData *shrmd, SmokeDomainSettings *sds)
-{
-	if(!shrmd->wt)
-	{
-		shrmd->wt = smoke_turbulence_init(sds->res,  shrmd->amplify + 1, shrmd->noise);
-		smoke_turbulence_initBlenderRNA(shrmd->wt, &shrmd->strength);
-	}
-}
-
-void smokeHRModifier_free(SmokeHRModifierData *shrmd)
-{
-	if(shrmd->wt)
-		smoke_turbulence_free(shrmd->wt);
-
-	BKE_ptcache_free_list(&shrmd->ptcaches);
-	shrmd->point_cache = NULL;
-}
-
-void smokeHRModifier_do(SmokeHRModifierData *shrmd, Scene *scene, Object *ob, int useRenderParams, int isFinalCalc)
-{
-	ModifierData *md = NULL;
-	SmokeModifierData *smd = NULL;
-	SmokeDomainSettings *sds = NULL;
-

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list