Blender Git Commits

Blender Git "testbuild" branch commits.

Page: 11 / 11

July 27, 2014, 16:49 (GMT)
Don't simulate the hair root.

This enforces the basic root constraint of hair curves. In principle we
could allow free, unconstrained hairs as well ...
July 27, 2014, 16:40 (GMT)
Keep the solver over time steps during a single modifier eval.
July 27, 2014, 16:10 (GMT)
Added time stepping in the modifier, like all the other simulations do.

This is pretty crappy in general, but there is no good alternative so
far. Eventually we'd like to separate simulation stepping from the
keyframe animation system, so that simulations can be advanced
independently. This would be very useful for tweaking (in a otherwise
constant environment), doing pre-roll, setting start frame in the cache
etc.

For now this modifier update approach is just a quick hack to get
visual feedback for the integrator.
July 27, 2014, 15:02 (GMT)
Very basic Semi-implicit Euler integrator for hair particles.

The semi-implicit (aka symplectic) Euler integrator is almost as simple
as the basic Euler integration, but conserves Energy much better.
http://en.wikipedia.org/wiki/Semi-implicit_Euler_method

It is the integrator suggested originally in this paper:
http://graphics.pixar.com/library/CurlyHairA/paper.pdf
July 27, 2014, 13:16 (GMT)
Time stepping operator for the hair system.
July 27, 2014, 12:00 (GMT)
Basic solver class, to perform iterative simulation of hair (eventually).

Data from DNA can be copied into a SolverData struct for optimized
solver access. This should happen any time the data layout is changed in
the DNA (points/hairs added or removed), since the solver works on fixed
datasets only. After each time step the solver result can be applied
back to the DNA data for display, tools etc.

It may be beneficial to keep the solver and its data around between time
steps, so the data does not get deleted automatically after applying.
Initializing the data, applying and freeing are separate functions.
July 27, 2014, 10:37 (GMT)
Macro utility for using MEM_guardedalloc in C++ hair classes.
July 27, 2014, 09:22 (GMT)
Fixed the smoothing algorithm.

The smoothing factor used for display is now exposed in RNA/modifier UI
too. This is just a debugging feature though, it doesn't really serve
any higher purpose.
July 26, 2014, 19:11 (GMT)
Particle-to-Hair copy: Use the pathcache of particle systems rather than
the base particle data.

Particles store all hair deformation and dynamics in the path cache, so
using the base data is not very interesting ...
July 26, 2014, 18:47 (GMT)
Smoothing function as a first feature in dedicated hair code.

This function is used in a number of places in the targeted algorithms.
It is a useful utility for parallel-transport of various properties
along a hair curve. With curled hair in particular the control curve
itself is otherwise too irregular to give usable results, for which the
smoothing offers an elegant solution.

The algorithm is described in detail in the paper "Artistic simulation
of curly hair":
http://graphics.pixar.com/library/CurlyHairA/paper.pdf
July 26, 2014, 08:36 (GMT)
Read/Write code for hair data.
July 26, 2014, 07:50 (GMT)
Fix for particle-to-hair copy operator.

Old particle system hair has its own local space and must be multiplied
by a per-hair matrix to get into
object space.
July 26, 2014, 07:25 (GMT)
Simple draw method for hair systems.

This is totally unoptimized and has only the bare minimum of key hair
display as lines. More sophisticated drawing will follow once the
requirements are clear.
July 25, 2014, 17:33 (GMT)
Operator for copying hair data from old particle systems to the new
hair data structure.

This will allow a quick initialization of the hair data with real world
examples, so we can test the hair simulation etc. without having to
write setup code or fully fledged tools first.

Possibly could also allow porting of old blend file data, but that is
of secondary importance for now.
July 25, 2014, 17:31 (GMT)
Change of the hair DNA data to use an array of arrays, instead of
flattening all the points into a single array.

The latter would be better for some algorithms and memory conherence,
but for frequent access we would copy to acceleration structures anyway.
Using double arrays is much nicer for access and modification by tools.
July 24, 2014, 12:57 (GMT)
Deleted unused cmake file.

This was committed accidentally, but does not contain usable code yet.
July 24, 2014, 12:29 (GMT)
Stub hair simulation modifier to attach a hair system to an object.

The modifier should never get anything more than a hair system and
some basic access features, all the logic should be in the hair system
only.
July 24, 2014, 09:51 (GMT)
Skeleton structs for Hair system, based on curves and points.
July 22, 2014, 18:01 (GMT)
Squashed commit of current WIP custom split normals work.

Obviously incomplete, just to test new 'testbuild' feature of buildbot. ;)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021