Blender Git Commits

Blender Git "hair_immediate_fixes" branch commits.

Page: 28 / 32

September 12, 2014, 17:56 (GMT)
Greatly improved normal calculation using view space position
derivatives.
September 12, 2014, 16:04 (GMT)
Framebuffer FX.

This commit introduces offscreen rendering for the 3D viewport.
There is test code that calculates depth and normal data
in screen space.

Currently just DOF is supported with a few parameters to control the
effect

This code recreates the framebuffer and texture objects every frame
which will make it -slow-. Use at your own risk.
September 12, 2014, 14:46 (GMT)
Desperate attempt to get stable collisions: Disable restitution and
handle only one collision contact at a time.

Collision still randomly explodes, even with differing results on the
same file. This could indicate a threading issue, possibly also related
to the dependency graph since multiple objects are involved in
collisions.
September 12, 2014, 13:48 (GMT)
Revert "Ignore velocity changes when the cloth solver does not converge."

This reverts commit c52b8ae818844965d56714a71255408873275dc1.

Sadly, at this point solver convergence is an exception rather than the
rule... Individual hairs can "explode" easily and thus disable the whole
simulation, which isn't helpful either.
September 12, 2014, 13:02 (GMT)
Ignore velocity changes when the cloth solver does not converge.

This helps keep the simulation stable as long as there are only a few
substeps that become too constrained for the solver.

Eventually we need better feedback about these solver results, so that
artists can tweak situations specifically to resolve bad solver results.
This is somewhat similar to the camera tracker, which also can run into
cases that cannot be resolved and have to be fixed manually.
September 12, 2014, 12:34 (GMT)
Moved collision response into the main cloth sim source file and fixed
some coordinate transform issues.

Collision response should be regarded as part of the dynamics system
instead of the basic collision detection.
September 12, 2014, 10:37 (GMT)
Correction for inverse constraint matrix rotation.
September 12, 2014, 10:30 (GMT)
Transform the constraint matrix and target solver vector z according to
the root frame transforms as well.

This ensures the hair constraints are actually in root space and applied
correctly by the solver.
September 12, 2014, 10:28 (GMT)
Use identity transform in the solver data roots to avoid possible errors
when this data is used outside the transform functions.
September 12, 2014, 09:22 (GMT)
Option for disabling the root frame transformation altogether, mostly
for testing.
September 12, 2014, 08:26 (GMT)
Ported root frame transformation to the old cloth solver.
September 12, 2014, 08:21 (GMT)
Switched back to the old solver for the time being.

The Eigen solver is not quite stable currently (possibly due to
incorrect porting of force calculations). It also still lacks threading
support and optimized matrix construction, making it slower in
comparison. Eventually would still like to switch, but fixing these
issues takes time.
September 12, 2014, 08:19 (GMT)
Implemented gradient transformation for forces in the root frame (dFdX,
dFdV).
September 11, 2014, 16:32 (GMT)
Removed unused variable.
September 11, 2014, 15:53 (GMT)
First stage of implementing moving frames of reference for hair/cloth.

This adds transformations for each hair from world to "root space".
Currently positions and velocities are simply transformed for the solver
data and inverse-transformed when copying the results back to the cloth
data. This way the hair movement becomes independent from the movement
of the emitter object. Eventually the "fictitious" forces originating
from emitter movement can be added back in a controlled way.

http://en.wikipedia.org/wiki/Fictitious_force

Ignoring these fictitious forces or scaling their effect is physically
correct, because in the absence of external forces the hair will always
return to rest position in this root frame.

External forces currently are not yet transformed into the root space.
September 11, 2014, 15:49 (GMT)
Disable some debugging options in Eigen to make it more usable in Debug
mode.

Eigen can become very slow in debug mode, which is a bit of a problem.
It relies heavily on compiler optimizations to remove function calls
etc. More optimizations may be desirable, possibly putting the implicit
solver into its own little library and enabling optimizations in debug
mode there could help.
September 11, 2014, 12:19 (GMT)
Added new data in the cloth modifier for hair root information.

This will allow us to implement moving reference frames for hair and
make "fictitious" forces optional, aiding in creating stable and
controllable hair systems.

Adding data in this place is a nasty hack, but it's too difficult to
encode as a DM data layer and the whole cloth modifier/DM intermediate
data copying for hair should be removed anyway.
September 11, 2014, 12:15 (GMT)
Cleanup, removed unused old code.
September 11, 2014, 09:14 (GMT)
Optimized matrix filling using the Eigen triplets method.

Otherwise the construction of matrices becomes very slow for larger
vertex counts because adding a new element is O(n), making it O(n^2) in
total.
September 10, 2014, 21:11 (GMT)
Added back external effector forces for the cloth solver.
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021