April 15, 2015, 09:04 (GMT) |
Merge branch 'alembic' into gooseberry |
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, 14:09 (GMT) |
Merge branch 'alembic' into gooseberry |
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, 12:32 (GMT) |
Merge branch 'cycles_memory_experiments' into gooseberry |
Revision 5155c16 by Sergey Sharybin (cycles_memory_experiments, gooseberry, gooseberry_farm, temp_motionpaths) April 14, 2015, 12:26 (GMT) |
Cycles leaf nodes split: Fix crash when rendering scene without inner nodes |
April 14, 2015, 11:26 (GMT) |
Merge branch 'cycles_memory_experiments' into gooseberry |
Revision cb69152 by Sergey Sharybin (cycles_memory_experiments, gooseberry, gooseberry_farm, temp_motionpaths) April 14, 2015, 11:19 (GMT) |
Merge branch 'master' into cycles_memory_experiments |
Revision e0bbdd9 by Sergey Sharybin (cycles_memory_experiments, gooseberry, gooseberry_farm, temp_motionpaths) April 14, 2015, 11:19 (GMT) |
Cycles: Split BVH nodes storage into inner and leaf nodes This way we can get rid of inefficient memory usage caused by BVH boundbox part being unused by leaf nodes but still being allocated for them. Doing such split allows to save 6 of float4 values for QBVH per leaf node and 3 of float4 values for regular BVH per leaf node. This translates into following memory save using 01.01.01.G rendered without hair: Device memory size Device memory peak Global memory peak Before the patch: 4957 5051 7668 With the patch: 4467 4562 7332 The measurements are done against current master. Still need to run speed tests and it's hard to predict if it's faster or not: on the one hand leaf nodes are now much more coherent in cache, on the other hand they're not so much coherent with regular nodes anymore. Reviewers: brecht, juicyfruit Subscribers: venomgfx, eyecandy Differential Revision: https://developer.blender.org/D1236 |
April 14, 2015, 10:46 (GMT) |
AnimSys utility function was renamed in master. |
April 14, 2015, 10:34 (GMT) |
Merge branch 'alembic' into gooseberry Conflicts: source/blenderplayer/bad_level_call_stubs/stubs.c |
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:24 (GMT) |
Merge branch 'master' into gooseberry Conflicts: source/blender/editors/space_view3d/drawobject.c source/blender/physics/intern/BPH_mass_spring.cpp |
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, 18:36 (GMT) |
Merge branch 'master' into gooseberry |
April 13, 2015, 16:38 (GMT) |
Merge branch 'master' into gooseberry |
|