Restored Fluid Sim baking
authorMatt Ebb <matt@mke3.net>
Thu, 25 Mar 2010 06:27:25 +0000 (06:27 +0000)
committerMatt Ebb <matt@mke3.net>
Thu, 25 Mar 2010 06:27:25 +0000 (06:27 +0000)
commit33f880e8666e9bb0ed954fccb82bc23255a97868
treec7b5e5283efd2540982d99917551e3a585b59720
parent5bcca8206e3397b6d1a31e278a4e4bad9051e68f
Restored Fluid Sim baking

This commit restores fluid sim baking functionality in 2.5, it's been on the todo for
a while, and was previously almost completely non-functional. The old
code was quite complicated and specific to the 2.4 animation system, so I've
pretty much rewritten most of it.

This includes:
* Animated variables work again - just key them in the UI. Non-animateable values
should be already set non-animateable in RNA, hopefully I got them all.

Available are: Domain Gravity / Domain Viscosity / Object loc/rot/scale /
Object initial velocity / Deforming meshes / Fluid control Attract strength /
Fluid control Attract radius / Fluid control Velocity strength /
Fluid control Velocity radius / Object Active status (checkbox next to fluid type)

The Domain time scale is still not yet implemented.

* Fluid sim now use global scene units data by default - when enabled, the
scene's global gravity value is used and when units are set (metric/imperial)
the simulation real world size is taken from the object's actual measurements.

* The baking process is now done in the background, using the nifty threaded
Jobs system. It's non-blocking and your domain object will show the simulated
fluid as it becomes available for that frame.

A nice extra thing for the future would be to improve the visualisation of the
object's state while baking, and also the jobs system/ui could do with some
touchups - currently it has to share a bit from the 'render' job, and appears as
'Render' in the header. Progress bars for jobs in the header would be great too.
release/scripts/ui/properties_physics_fluid.py
source/blender/blenkernel/BKE_object.h
source/blender/blenkernel/intern/fluidsim.c
source/blender/blenkernel/intern/object.c
source/blender/blenloader/intern/readfile.c
source/blender/editors/include/ED_fluidsim.h
source/blender/editors/physics/physics_fluid.c
source/blender/editors/space_buttons/space_buttons.c
source/blender/makesdna/DNA_object_fluidsim.h
source/blender/makesrna/intern/rna_fluidsim.c
source/blender/makesrna/intern/rna_object.c