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

Daniel Genrich daniel.genrich at gmx.net
Fri Jul 31 00:11:28 CEST 2009


Revision: 22074
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22074
Author:   genscher
Date:     2009-07-31 00:11:28 +0200 (Fri, 31 Jul 2009)

Log Message:
-----------
Smoke:
a) Crash fixed when loading files with smoke
b) changed presets to be more low-cpu friendly
c) smoke looks thicker

Unsolved:
a) 3dview of smoke changes weirdly when looking at front/back. Just move around a cube with smoke and you know what I mean - odd shading. If someone likes to take a look: draw_object.c -> search for "smoke" there

Modified Paths:
--------------
    branches/blender2.5/blender/intern/smoke/intern/VEC3.h
    branches/blender2.5/blender/intern/smoke/intern/smoke_API.cpp
    branches/blender2.5/blender/source/blender/blenkernel/intern/smoke.c
    branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_modifier.c

Modified: branches/blender2.5/blender/intern/smoke/intern/VEC3.h
===================================================================
--- branches/blender2.5/blender/intern/smoke/intern/VEC3.h	2009-07-30 21:42:29 UTC (rev 22073)
+++ branches/blender2.5/blender/intern/smoke/intern/VEC3.h	2009-07-30 22:11:28 UTC (rev 22074)
@@ -937,12 +937,14 @@
 operator<<( std::ostream& os, const BasicVector::Vector3Dim<Scalar>& i )
 {
 	char buf[256];
+#if 0
 #if _WIN32
   sprintf(buf,globVecFormatStr, (double)i[0],(double)i[1],(double)i[2]);
 #else
   snprintf(buf,256,globVecFormatStr, (double)i[0],(double)i[1],(double)i[2]);
 #endif
 	os << std::string(buf); 
+#endif
   return os;
 }
 

Modified: branches/blender2.5/blender/intern/smoke/intern/smoke_API.cpp
===================================================================
--- branches/blender2.5/blender/intern/smoke/intern/smoke_API.cpp	2009-07-30 21:42:29 UTC (rev 22073)
+++ branches/blender2.5/blender/intern/smoke/intern/smoke_API.cpp	2009-07-30 22:11:28 UTC (rev 22074)
@@ -49,7 +49,6 @@
 
 extern "C" void smoke_step(FLUID_3D *fluid)
 {
-	// fluid->addSmokeColumn();
 	fluid->step();
 }
 

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/smoke.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/smoke.c	2009-07-30 21:42:29 UTC (rev 22073)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/smoke.c	2009-07-30 22:11:28 UTC (rev 22074)
@@ -601,7 +601,7 @@
 			smd->domain->fluid_group = NULL;
 			smd->domain->coll_group = NULL;
 			smd->domain->maxres = 48;
-			smd->domain->amplify = 4;
+			smd->domain->amplify = 2;
 			smd->domain->omega = 0.5;
 			smd->domain->alpha = -0.001;
 			smd->domain->beta = 0.1;
@@ -990,7 +990,7 @@
 					// formula taken from "Visual Simulation of Smoke" / Fedkiw et al. pg. 4
 					// T_vox = exp(-C_ext * h)
 					// C_ext/sigma_t = density * C_ext
-					smoke_set_tvox(smd, index, exp(-density[index] * smd->domain->dx));
+					smoke_set_tvox(smd, index, exp(-density[index] * 4.0 * smd->domain->dx));
 	}
 	smoke_calc_transparency(smd, light, 0);
 }
@@ -1022,7 +1022,7 @@
 		// formula taken from "Visual Simulation of Smoke" / Fedkiw et al. pg. 4
 		// T_vox = exp(-C_ext * h)
 		// C_ext/sigma_t = density * C_ext
-		smoke_set_bigtvox(smd, i, exp(-density[i] * smd->domain->dx / smd->domain->amplify) );
+		smoke_set_bigtvox(smd, i, exp(-density[i] * 4.0 * smd->domain->dx / smd->domain->amplify) );
 	}
 	smoke_calc_transparency(smd, light, 1);
 }

Modified: branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-07-30 21:42:29 UTC (rev 22073)
+++ branches/blender2.5/blender/source/blender/blenloader/intern/readfile.c	2009-07-30 22:11:28 UTC (rev 22074)
@@ -3645,12 +3645,14 @@
 		else if (md->type==eModifierType_Smoke) {
 			SmokeModifierData *smd = (SmokeModifierData*) md;
 
+			smd->point_cache = NULL;
+
 			if(smd->type==MOD_SMOKE_TYPE_DOMAIN)
 			{
 				smd->flow = NULL;
 				smd->coll = NULL;
-				if(smd->domain)
-					smd->domain = newdataadr(fd, smd->domain);
+				smd->domain = newdataadr(fd, smd->domain);
+				smd->domain->smd = smd;
 
 				smd->domain->fluid = NULL;
 				smd->domain->tvox = NULL;
@@ -3666,6 +3668,7 @@
 				smd->domain = NULL;
 				smd->coll = NULL;
 				smd->flow = newdataadr(fd, smd->flow);
+				smd->flow->smd = smd;
 				smd->flow->psys = newdataadr(fd, smd->flow->psys);
 			}
 			else if(smd->type==MOD_SMOKE_TYPE_COLL)
@@ -10185,12 +10188,9 @@
 			
 		if(smd->type==MOD_SMOKE_TYPE_DOMAIN && smd->domain)
 		{	
-			//if(smd->domain->coll_group)
-				expand_doit(fd, mainvar, smd->domain->coll_group);
-			//if(smd->domain->fluid_group)
-				expand_doit(fd, mainvar, smd->domain->fluid_group);
-			//if(smd->domain->eff_group)
-				expand_doit(fd, mainvar, smd->domain->eff_group);
+			expand_doit(fd, mainvar, smd->domain->coll_group);
+			expand_doit(fd, mainvar, smd->domain->fluid_group);
+			expand_doit(fd, mainvar, smd->domain->eff_group);
 		}
 	}
 }

Modified: branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c	2009-07-30 21:42:29 UTC (rev 22073)
+++ branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c	2009-07-30 22:11:28 UTC (rev 22074)
@@ -5486,7 +5486,7 @@
 
 				mod_texture = MAX3(1, smd->domain->visibility, (int)(res[mainaxis[0]] / smd->domain->max_textures ));
 				
-				for (z = res[mainaxis[0]]-1; z >= 0; z--) // 2
+				for (z = 0; z < res[mainaxis[0]]; z++) // 2
 				{
 					float quad[4][3];
 

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_modifier.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_modifier.c	2009-07-30 21:42:29 UTC (rev 22073)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_modifier.c	2009-07-30 22:11:28 UTC (rev 22074)
@@ -178,11 +178,15 @@
 static void rna_Smoke_set_type(bContext *C, PointerRNA *ptr)
 {
 	SmokeModifierData *smd= (SmokeModifierData *)ptr->data;
+	Object *ob= (Object*)ptr->id.data;
 		
 	smokeModifier_free(smd); // XXX TODO: completely free all 3 pointers
 	smokeModifier_createType(smd); // create regarding of selected type
 	// particle_system_slot_add_exec(C, NULL);
 	// particle_system_slot_remove_exec(C, NULL);
+
+	if(smd->type == MOD_SMOKE_TYPE_DOMAIN)
+		ob->dt = OB_WIRE;
 	
 	// update dependancy since a domain - other type switch could have happened
 	rna_Modifier_dependency_update(C, ptr);





More information about the Bf-blender-cvs mailing list