Blender Git Commits

Blender Git "gooseberry" branch commits.

Page: 33 / 103

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
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
April 14, 2015, 11:19 (GMT)
Merge branch 'master' into cycles_memory_experiments
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
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021