Blender Git Loki

Blender Git "hair_system" branch commits.

Page: 33 / 35

July 30, 2014, 14:55 (GMT)
Fix problem of hair root animation by keeping the solver around as a
runtime instance.

The SolverData also functions as a short-term history for constructing
the hair root animation/deformation curves. This is necessary because
the DerivedMesh data on its own does not have interpolation intervals
nor velocity information.

It also means that we have to keep this data alive over multiple frames
in order to do root animation properly. So now the solver is created as
a runtime instance.
July 30, 2014, 14:22 (GMT)
Base support for hair root animation.

Note: This does not work currently, because of the way the solver is
reconstructed in every time step currently, and so does not provide
actual changes in the transform.

Note2: The mesh sampling system does not support changes in DerivedMesh
topology so far. It can be necessary to move the hair system to the
bottom of the modifier stack, because the hair roots are created for
the final mesh version and for animation support it can only use the
mesh being passed to the modifier. Any later subsurf etc. (constructive
modifier) will alter the topology and cause a difference in the DM used
for hair roots vs. DM used for calculating deformation.
July 30, 2014, 10:11 (GMT)
Also handle the applying of solver data to the scene DNA in the
SceneConverter class.
July 30, 2014, 09:51 (GMT)
Moved Blender hair data conversion for the solver to a dedicated
SceneConverter class.

This should handle all the details of the DNA/SolverData differences
and keep the rest of the solver code clean.
July 30, 2014, 08:42 (GMT)
Define hair root points when copying from particles, by converting
the old num/fuv data.
July 30, 2014, 06:25 (GMT)
Use particle systems on the same object for "copy from particles" operator.

This allows using the same geometry reference for hair roots.
July 29, 2014, 16:42 (GMT)
Fix for error when converting int -> unsigned int with strict compiler
flags.
July 29, 2014, 16:42 (GMT)
Changed mesh sample definition to use 3 vertex weights instead of a
face index. This is easier to sample uniformly and avoids the need for
tesselation for evaluating.
July 29, 2014, 16:42 (GMT)
Normalize the normal vector after sample eval to account for
interpolation.
July 29, 2014, 16:42 (GMT)
Added a bool return to the eval function to give feedback on invalid
samples.
July 29, 2014, 16:42 (GMT)
Added a basic RNA definition for the mesh sampling system.
July 29, 2014, 16:42 (GMT)
Eval function to get a location and normal vector from mesh samples.
July 29, 2014, 16:42 (GMT)
Usable random distribution algorithm.

Does not include area weighting yet.
July 29, 2014, 16:42 (GMT)
Skeleton code for sampling meshes.
July 29, 2014, 16:42 (GMT)
Merge branch 'master' into hair_system
July 29, 2014, 13:44 (GMT)
Bending forces and damping for hair.

This adds some stiffness to hairs along bends, such that the hair does
no longer behave like a chain of freely rotating segments.

Note that there is no bending force on the root segment yet, which means
the hair swivels around the root point without resistance.
July 29, 2014, 12:27 (GMT)
Precomputation of rest "bend" vectors in the solver data.

These vectors determine the bending amount of the hair, by giving a
fixed reference from the rest position. The same calculation is done
for the state vectors in every step, but the precomputation saves
roughly half of the cost by avoiding a useless loop over the rest data.
July 29, 2014, 11:47 (GMT)
Removed the unused is_dynamic property from solver points.

For the solver data it is quite important to keep the data structs
small, much more than in the DNA data.
July 29, 2014, 11:45 (GMT)
Transform3 type for pure rotational matrices.
July 29, 2014, 10:37 (GMT)
Implemented hair frame calculation using parallel transport along
curve segments.

This can be done on-the-fly but rotating the root hair frame
incrementally according to each hair segment angle. Note: a similar
approach can be found in the Blender curve code for calculating twist
vectors.

A novel feature of the hair frame calculation is the use of smoothed
hair curves. This prevents artifacts in case of sharp segment angles by
removing small-scale noise from the curve.
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021