Smoke Patch + additions: a) Applying patch #22765 by Miika Hämäläinen (domain border collision settings, vorticity settings, time scale, non absolute density, smooth high res emitter, initial velocity multiplier, high res strength available to be set to 0), b) Additions by me: --Initial velocity is now per flow object, not per domain; --Using boundingbox as standard display mode for domains (was wire before); --When adding a flow object, an initial nice SmokeParticle system is added too with nice initial settings (life=1, no_render, unborn, etc) fitting smoke simulation; --Adaptive timesteps introduced to the smoke sim (depending on the magnitude of the velocity) because it was quite unstable when used for fire simulations, still needs to be tested and will also slow down some simulations.

This commit is contained in:
2010-07-27 14:53:20 +00:00
parent ecb58629f2
commit 967d25ac1c
12 changed files with 571 additions and 105 deletions

View File

@@ -78,14 +78,17 @@ class PHYSICS_PT_smoke(PhysicButtonsPanel):
col = split.column()
col.label(text="Resolution:")
col.prop(domain, "maxres", text="Divisions")
col.label(text="Particle:")
col.prop(domain, "initial_velocity", text="Initial Velocity")
col.label(text="Time:")
col.prop(domain, "time_scale", text="Scale")
col.label(text="Border Collisions:")
col.prop(domain, "smoke_domain_colli", text="")
if wide_ui:
col = split.column()
col.label(text="Behavior:")
col.prop(domain, "alpha")
col.prop(domain, "beta")
col.prop(domain, "vorticity")
col.prop(domain, "dissolve_smoke", text="Dissolve")
sub = col.column()
sub.active = domain.dissolve_smoke
@@ -93,24 +96,31 @@ class PHYSICS_PT_smoke(PhysicButtonsPanel):
sub.prop(domain, "dissolve_smoke_log", text="Slow")
elif md.smoke_type == 'FLOW':
flow = md.flow_settings
split = layout.split()
col = split.column()
col.prop(flow, "outflow")
col.label(text="Particle System:")
col.label(text="Particle:")
col.prop_object(flow, "psys", ob, "particle_systems", text="")
if md.flow_settings.outflow:
if wide_ui:
col = split.column()
else:
if wide_ui:
col = split.column()
col.label(text="Behavior:")
col.prop(flow, "temperature")
col.prop(flow, "density")
sub = col.column()
sub.active = not md.flow_settings.outflow
sub.prop(flow, "initial_velocity", text="Initial Velocity")
sub = sub.column()
sub.active = flow.initial_velocity
sub.prop(flow, "velocity_multiplier", text="Multiplier")
if wide_ui:
sub = split.column()
sub.active = not md.flow_settings.outflow
sub.label(text="Behavior:")
sub.prop(flow, "temperature")
sub.prop(flow, "density")
sub.prop(flow, "absolute")
#elif md.smoke_type == 'COLLISION':
# layout.separator()
@@ -191,6 +201,7 @@ class PHYSICS_PT_smoke_highres(PhysicButtonsPanel):
col = split.column()
col.label(text="Resolution:")
col.prop(md, "amplify", text="Divisions")
col.prop(md, "smoothemitter")
col.prop(md, "viewhighres")
if wide_ui: