April 16, 2015, 13:50 (GMT) |
Revert recent commits, no time to improve things now. |
April 16, 2015, 10:52 (GMT) |
Don't write dupli instances to caches in the Render pass. Duplilists are always generated for viewport/realtime settings, render settings only affect the mesh geometry but not the duplis. |
April 16, 2015, 10:07 (GMT) |
Cleanup: Removed unused writer/reader classes for Alembic. These classes were used previously to write parts of the Blender DNA directly to Alembic. Their code is shared with other classes that are still in use, so none of the really substantial parts have been deleted. |
April 16, 2015, 09:57 (GMT) |
Cleanup: Removed unused parts of the C API for caching. This only removes trivial C function wrappers for parts of the C++ code that are not used directly any more from outside the bl_pointcache library. Some internal parts may be removed later, this cleanup is mostly to reduce code noise. |
April 16, 2015, 09:51 (GMT) |
Renamed passes for cache writing to reflect their origin with mesh modifier evaluation. |
April 16, 2015, 08:42 (GMT) |
Remove the dual "root" object at the top of Alembic archives. Using two full scene nodes for render/realtime data creates a lot of duplication in both storage and processing time. Instead storing specific data types like meshes in different versions keeps duplication to the necessary minimum and allows easier fallback where available. |
April 15, 2015, 10:47 (GMT) |
Removed the unused particle writer/reader code from Alembic. We only use particles to initialize strands export now. |
April 15, 2015, 10:29 (GMT) |
Only process hair simulation in "realtime" mode. This means no motion state data is generated for render mode, this requires some larger changes to the way render/realtime data is stored in the caches. |
April 15, 2015, 09:00 (GMT) |
Object and particle system selection in the cache hair sim modifier. Before this the hair sim would be applied indiscriminately to all the strands in the cache data. Now an object/psys combination from the dupli cache must be selected. Note that this is not the actual target of the hair simulation, which still operates on the cache overrides instead. The Object/Psys only functions as a selectable key, if no matching data is found in the cache no hairsim will be applied. |
April 14, 2015, 13:28 (GMT) |
Another fix for child deformation. Needs the parent base shape in the rotated deformed root space, or the child gets additional deformation from the root rotations. |
April 14, 2015, 10:46 (GMT) |
AnimSys utility function was renamed in master. |
April 14, 2015, 10:25 (GMT) |
Merge branch 'master' into alembic Conflicts: source/blender/blenkernel/intern/object_dupli.c source/blenderplayer/bad_level_call_stubs/stubs.c |
April 14, 2015, 10:21 (GMT) |
Fix for missing child data when the pathcache is not calculated. The child strand root matrix and position still need to be stored, so the writer must not exit early based on existence of the pathcache. |
April 14, 2015, 09:50 (GMT) |
Optimization for particle baking to caches, skip evaluation of pathcache when not needed. The pathcache data is only required in the first frame to construct the child strand shapes. For subsequent frames the children are calculated using the initial shape and parent deformation, so particles don't need to recalculate all the time. This gives a significant performance increase of the baking process when using a lot of complicated child hairs. |
April 14, 2015, 09:06 (GMT) |
Apply child strand deformation only when using the cache result for viewport or render display. This way the strands can be cleanly written to subsequent output caches without accumulating deformations. |
April 14, 2015, 09:06 (GMT) |
Major optimization for cache size when storing child strands. The basis for this optimization is that child strands have a shape that does not actually change over time: the particle code does not enforce this formally, but in fact all the clump/kink/roughness algorithms take great care to not introduce changes of shape over time. The final look of child hairs is achieved only by following the parent hair deformation, i.e. by applying the offset of the matching parametric position on the parent strand. This means that for caching child strands it is sufficient to store the full vertex data only in the first sample, and then apply the parent deformation on subsequent frames using only the animated root matrices. In test cases this seems to reduce the cache size to something between 10-20 % of the original size (down to some hundred MB from some 10 GB). Further optimizations could be achieved by using smaller data types, such as quaternions instead of 3x3 or 4x4 matrices for the remaining child data. |
April 14, 2015, 09:06 (GMT) |
Ignore the display/render settings of the cachelibrary when doing simulations. Otherwise the child strands and/or motion state can be missing and lead to incomplete output caches. |
April 13, 2015, 10:48 (GMT) |
Alembic: Fix compilation error with alembic disabled Was a mismatch in stub factory methods, presumably after some recent changes in hair/strands. |
April 12, 2015, 12:39 (GMT) |
Fix for broken and messy particle time values to get consistent caches. Particles use 0..100 range for parent particle "times" (curve parameter) and 0..1 for children. For caches this is now uniformly calculated in the 0..1 range to avoid breaking child interpolation. |
April 11, 2015, 19:51 (GMT) |
Used the mass parameter for hair simulation. |
|