Blender Git Loki

Git Commits -> Revision 912c2f4

Revision 912c2f4 by Janne Karhu (master)
June 27, 2009, 15:28 (GMT)
Pointcache refresh part 2

* Based on what happens during simulation the cache is marked (also in cache panel, this could possibly be extended to 3d view as well) as:
- exact (not marked)
- outdated (simulation is not done completely with current settings)
- non-exact (frames were skipped during simulation)

* The parameter "cache step" effects the number of frames between saved cache frames.
- This can save a lot of memory (or disk space) if absolutely frame accurate simulation is not required.
- Speeds up the "quick caching" very much.
- Frames between cached frames are interpolated from the cached frames.
- Current default value of 10 frames works nicely with up/down-arrows (skip 10 frames forwards/backwards on timeline), but can be changed if wanted.

* The caching can work in normal or "quick" mode:
[Normal cache]
- Basic: Calculate what even happens (settings change, big frame steps etc.) and cache results, if possible try to use "cache step" when saving cache frames.
- Becomes non-exact: After larger than 1 frame steps.
- Becomes outdated: After any change effecting the simulation other than frame steps.
- Pros/cons: Freedom of doing anything and playing with particles, but exact results have to calculated from the beginning.

[Quick cache]
- Basic: Calculate simulation up to current frame automatically on changes with cache step sized jumps in simulation. With multiple "quick cached" simulations the smallest cache step is used.
- Becomes non-exact: Always from frame 1 (unless cache step = 1).
- Becomes outdated: Never.
- Pros/cons: Not very accurate, but super fast!
- Todo: Transform of any animated (non-autokeyed) object is locked! Probably needs some tinkering with anim sys overrides.

* The simulation can be run forwards or backwards even if it's cache is outdated or non-exact, the following rules apply in these situations:
- step forwards (to unknown) -> simulate from last exact frame, store result
- step backwards (to known) -> result is interpolated from existing frames, store result, clear cache forwards if current frame is after last exact frame

* "Calculate to current frame" runs the simulation from start to current frame with a frame steps of 1.
- Baking does the same, but runs the simulation all the way to the end of simulation.
- Rendering does this automatically if the simulation is outdated of non-exact, so all rendered simulations will always be updated and exact.

* Every cache panel also holds buttons to "Bake all dynamics", "Free all dynamics" and "Update all dynamics to current frame".

* Cloth simulation supports the new cache too.

Commit Details:

Full Hash: 912c2f440b447aa8cae9f3e3a86acf51cd495e3d
SVN Revision: 21195
Parent Commit: 9becf3c
Lines Changed: +754, -324

19 Modified Paths:

/release/ui/buttons_particle.py (+17, -10) (Diff)
/release/ui/buttons_physic_cloth.py (+48, -0) (Diff)
/source/blender/blenkernel/BKE_cloth.h (+3, -2) (Diff)
/source/blender/blenkernel/BKE_particle.h (+0, -1) (Diff)
/source/blender/blenkernel/BKE_pointcache.h (+7, -6) (Diff)
/source/blender/blenkernel/intern/cloth.c (+103, -61) (Diff)
/source/blender/blenkernel/intern/implicit.c (+8, -2) (Diff)
/source/blender/blenkernel/intern/particle.c (+2, -25) (Diff)
/source/blender/blenkernel/intern/particle_system.c (+27, -30) (Diff)
/source/blender/blenkernel/intern/pointcache.c (+307, -168) (Diff)
/source/blender/blenloader/intern/readfile.c (+7, -6) (Diff)
/source/blender/blenloader/intern/writefile.c (+4, -1) (Diff)
/source/blender/editors/physics/ed_pointcache.c (+117, -5) (Diff)
/source/blender/editors/transform/transform_conversions.c (+6, -0) (Diff)
/source/blender/makesdna/DNA_object_force.h (+7, -2) (Diff)
/source/blender/makesrna/intern/rna_cloth.c (+43, -0) (Diff)
/source/blender/makesrna/intern/rna_object_force.c (+44, -5) (Diff)
/source/blender/render/intern/source/pipeline.c (+1, -0) (Diff)
/source/blender/windowmanager/intern/wm_event_system.c (+3, -0) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021