[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46173] branches/smoke2: Fix another crash caused by pointcache.
Daniel Genrich
daniel.genrich at gmx.net
Wed May 2 01:09:27 CEST 2012
Revision: 46173
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46173
Author: genscher
Date: 2012-05-01 23:09:26 +0000 (Tue, 01 May 2012)
Log Message:
-----------
Fix another crash caused by pointcache.
I commented some code to save me some startup time.
Remove the comments in FLUID_3D::init() to create your own setup files.
Modified Paths:
--------------
branches/smoke2/intern/smoke/intern/smoke_API.cpp
branches/smoke2/intern/smoke/intern/source/smoke.cpp
branches/smoke2/intern/smoke/intern/source/smoke.h
branches/smoke2/source/blender/blenkernel/intern/smoke.c
Modified: branches/smoke2/intern/smoke/intern/smoke_API.cpp
===================================================================
--- branches/smoke2/intern/smoke/intern/smoke_API.cpp 2012-05-01 21:46:55 UTC (rev 46172)
+++ branches/smoke2/intern/smoke/intern/smoke_API.cpp 2012-05-01 23:09:26 UTC (rev 46173)
@@ -42,14 +42,16 @@
// y in smoke is z in blender
extern "C" FLUID_3D *smoke_init(int *res, float *p0, float dtdef)
{
- printf("-------------------- SMOKE INIT --------------------------\n");
+ printf("-------------------- SMOKE CREATE --------------------------\n");
/*
res[0] = 32;
res[1] = 32;
res[2] = 32;
*/
FLUID_3D *fluid = new FLUID_3D(res);
- fluid->init();
+ printf("-------------------- SMOKE INIT --------------------------\n");
+ if(!fluid->_init)
+ fluid->init();
return fluid;
}
Modified: branches/smoke2/intern/smoke/intern/source/smoke.cpp
===================================================================
--- branches/smoke2/intern/smoke/intern/source/smoke.cpp 2012-05-01 21:46:55 UTC (rev 46172)
+++ branches/smoke2/intern/smoke/intern/source/smoke.cpp 2012-05-01 23:09:26 UTC (rev 46173)
@@ -5,8 +5,10 @@
void FLUID_3D::init()
{
+ /*
printf("-------------------- SMOKE INIT A-------------------------\n");
{ // static scene
+ printf("init res %d, %d, %d\n", _res[0], _res[1], _res[2]);
SolverObject* solver = new SolverObject( "makescene", nVec3i ( _res[0], _res[1], _res[2] ) ); // 200, 80, 150
solver->createVec3Grid ( "normal" );
solver->createRealGrid ( "dist" );
@@ -45,7 +47,7 @@
const int nFrames = 50;
precompute("static", inflow, nFrames, false);
}
-
+*/
printf("-------------------- SMOKE INIT B-------------------------\n");
{
Vec3 inflow (0.4, 0, 0);
@@ -56,12 +58,12 @@
// create grids
solver->createVec3Grid ( "mean-flow" );
solver->createRealGrid ( "dist" );
- solver->createVec3Grid ( "vorticity" );
+ solver->createVec3Grid ( "vorticity", DDF_GRID_NO_FREE );
solver->createVec3Grid ( "ABL" );
solver->createVec3Grid ( "pre-ABL" );
solver->createVec3Grid ( "vort" );
solver->createRealGrid ( "pdf" );
- solver->createRealGrid ( "density" );
+ solver->createRealGrid ( "density", DDF_GRID_NO_FREE );
solver->addStandardSolverGrids();
solver->createNoiseField("noise", Vec3(0.), Vec3(50,50,50), -0.4, 2.0, 0.002);
@@ -94,6 +96,8 @@
_vorticity = _solvers[0]->getParams().getGridVec3("vorticity");
_density = _solvers[0]->getParams().getGridReal("density");
+ _init = 1;
+
}
// static precompute
@@ -176,4 +180,6 @@
{
finalizeAllSolvers();
freeAllSolvers();
+
+ _init = 0;
}
\ No newline at end of file
Modified: branches/smoke2/intern/smoke/intern/source/smoke.h
===================================================================
--- branches/smoke2/intern/smoke/intern/source/smoke.h 2012-05-01 21:46:55 UTC (rev 46172)
+++ branches/smoke2/intern/smoke/intern/source/smoke.h 2012-05-01 23:09:26 UTC (rev 46173)
@@ -53,6 +53,8 @@
public:
int _res[3];
+ bool _init;
+
/* Init */
Grid<int> *_flags;
Grid<Vec3> *_normal;
@@ -81,6 +83,8 @@
_res[0] = res[0];
_res[1] = res[1];
_res[2] = res[2];
+
+ _init = 0;
};
~FLUID_3D()
Modified: branches/smoke2/source/blender/blenkernel/intern/smoke.c
===================================================================
--- branches/smoke2/source/blender/blenkernel/intern/smoke.c 2012-05-01 21:46:55 UTC (rev 46172)
+++ branches/smoke2/source/blender/blenkernel/intern/smoke.c 2012-05-01 23:09:26 UTC (rev 46173)
@@ -935,7 +935,7 @@
smd->domain->eff_group = NULL;
smd->domain->fluid_group = NULL;
smd->domain->coll_group = NULL;
- smd->domain->maxres = 32;
+ smd->domain->maxres = 80;
smd->domain->amplify = 1;
smd->domain->omega = 1.0;
smd->domain->alpha = -0.001;
@@ -1884,9 +1884,11 @@
smoke_turbulence_step(sds->wt, sds->fluid);
}
+ /* DG TODO
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