[Bf-blender-cvs] [2ea7dab] fluid-mantaflow: border collisions now work for smoke AND liquids
Sebastián Barschkis
noreply at git.blender.org
Tue Aug 9 15:24:36 CEST 2016
Commit: 2ea7dab100efed8d02a19f27e40198fb539dac39
Author: Sebastián Barschkis
Date: Tue Aug 9 15:23:51 2016 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rB2ea7dab100efed8d02a19f27e40198fb539dac39
border collisions now work for smoke AND liquids
===================================================================
M intern/mantaflow/intern/SMOKE.cpp
M intern/mantaflow/intern/strings/liquid_script.h
M intern/mantaflow/intern/strings/shared_script.h
M release/scripts/startup/bl_operators/object_quick_effects.py
===================================================================
diff --git a/intern/mantaflow/intern/SMOKE.cpp b/intern/mantaflow/intern/SMOKE.cpp
index 9313e69..88b3ab6 100644
--- a/intern/mantaflow/intern/SMOKE.cpp
+++ b/intern/mantaflow/intern/SMOKE.cpp
@@ -292,7 +292,7 @@ void SMOKE::initLiquid(SmokeModifierData *smd)
std::string tmpString = alloc_liquid
+ fluid_variables
+ liquid_variables
-// + prep_domain_low
+ + prep_domain_low
+ init_phi
+ save_mesh
+ save_liquid_data
diff --git a/intern/mantaflow/intern/strings/liquid_script.h b/intern/mantaflow/intern/strings/liquid_script.h
index aced190..2094d31 100644
--- a/intern/mantaflow/intern/strings/liquid_script.h
+++ b/intern/mantaflow/intern/strings/liquid_script.h
@@ -75,7 +75,6 @@ pindex = s.create(ParticleIndexSystem)\n\
gpi = s.create(IntGrid)\n";
const std::string init_phi = "\n\
-flags.initDomain(boundaryWidth=0)\n\
phi.initFromFlags(flags)\n\
phiInit.initFromFlags(flags)\n";
@@ -116,17 +115,20 @@ def liquid_step():\n\
# Advect particles and grid phi\n\
# Note: Grid velocities are extrapolated at the end of each step\n\
pp.advectInGrid(flags=flags, vel=vel, integrationMode=IntRK4, deleteInObstacle=False )\n\
- advectSemiLagrange(flags=flags, vel=vel, grid=phi, order=1)\n\
- flags.updateFromLevelset(phi)\n\
+ advectSemiLagrange(flags=flags, vel=vel, grid=phi, order=1, openBounds=doOpen, boundaryWidth=boundaryWidth)\n\
\n\
# Advect grid velocity\n\
if narrowBand:\n\
- advectSemiLagrange(flags=flags, vel=vel, grid=vel, order=2)\n\
+ advectSemiLagrange(flags=flags, vel=vel, grid=vel, order=2, openBounds=doOpen, boundaryWidth=boundaryWidth)\n\
\n\
# Create level set of particles\n\
gridParticleIndex( parts=pp , flags=flags, indexSys=pindex, index=gpi )\n\
unionParticleLevelset( pp, pindex, flags, gpi, phiParts )\n\
\n\
+ if doOpen:\n\
+ resetOutflow(flags=flags, phi=phi, parts=pp, index=gpi, indexSys=pindex)\n\
+ flags.updateFromLevelset(phi)\n\
+ \n\
if narrowBand:\n\
# Combine level set of particles with grid level set\n\
phi.addConst(1.); # shrink slightly\n\
@@ -170,7 +172,7 @@ def liquid_step():\n\
# Resample particles\n\
pVel.setSource( vel, isMAC=True ) # Set source grids for resampling, used in adjustNumber!\n\
if narrowBand:\n\
- phi.setBoundNeumann(0) # make sure no particles are placed at outer boundary\n\
+ phi.setBoundNeumann(boundaryWidth) # make sure no particles are placed at outer boundary\n\
adjustNumber( parts=pp, vel=vel, flags=flags, minParticles=1*minParticles, maxParticles=2*minParticles, phi=phi, narrowBand=narrowBandWidth )\n\
else:\n\
adjustNumber( parts=pp, vel=vel, flags=flags, minParticles=1*minParticles, maxParticles=2*minParticles, phi=phi )\n\
diff --git a/intern/mantaflow/intern/strings/shared_script.h b/intern/mantaflow/intern/strings/shared_script.h
index 99c617c..f3801b6 100644
--- a/intern/mantaflow/intern/strings/shared_script.h
+++ b/intern/mantaflow/intern/strings/shared_script.h
@@ -73,7 +73,7 @@ xl.cfl = s.cfl\n";
const std::string fluid_variables = "\n\
doOpen = $DO_OPEN$\n\
boundConditions = '$BOUNDCONDITIONS$'\n\
-boundaryWidth = 1\n";
+boundaryWidth = 0\n";
const std::string prep_domain_low = "\n\
# prepare domain low\n\
diff --git a/release/scripts/startup/bl_operators/object_quick_effects.py b/release/scripts/startup/bl_operators/object_quick_effects.py
index d31e819..07fedb2 100644
--- a/release/scripts/startup/bl_operators/object_quick_effects.py
+++ b/release/scripts/startup/bl_operators/object_quick_effects.py
@@ -692,6 +692,7 @@ class QuickLiquid(Operator):
bpy.ops.object.modifier_add(type='SMOKE')
obj.modifiers[-1].smoke_type = 'DOMAIN'
obj.modifiers[-1].domain_settings.smoke_domain_type = 'LIQUID'
+ obj.modifiers[-1].domain_settings.collision_extents = 'BORDERCLOSED'
# set correct cache file format for liquid
obj.modifiers[-1].domain_settings.cache_file_format = 'OBJECT'
More information about the Bf-blender-cvs
mailing list