Blender Git Loki

Blender Git "hair_guides_grooming" branch commits.

Page: 20 / 25

April 20, 2015, 10:37 (GMT)
Fix for CustomDataType syntax error from merging.
April 20, 2015, 10:25 (GMT)
Cleanup: rename function argument for consistency.
April 20, 2015, 10:25 (GMT)
Use the X mirror option in new strand edit stroke brush tools.

Note that currently this has virtually no effect, because the mirror
option relies on exact positions of vertices, which does not happen with
random hair placement (the add brush has no mirror option yet).

Eventually topological mirroring should help with this case, but is not
implemented for either old or new strand edit yet.
April 20, 2015, 10:25 (GMT)
Utility methods for mirrored strand editing.

These are a modified version of their BMEditMesh counterparts.

use_topology is not yet implemented for strands. Native strand topology
is not very useful for this. Instead, the topology of the scalp mesh
should be used for finding mirrored strand roots, then the arc- or
parametric length of a vertex from the root to find mirrored verts.

Conflicts:
source/blender/blenkernel/BKE_editstrands.h
April 20, 2015, 10:24 (GMT)
Minor code reshuffling.
April 20, 2015, 10:24 (GMT)
Fix for strands undo creating an invalid BMesh.

When copying mesh data to bmesh the MVERT and similar customdata types
have to be omitted. Otherwise the bmesh instance ends up with NULL
pointers in customdata layers, but entries in the typemap != -1. The
effect was that when storing new steps after one or more undo, the
resulting original data would be copied, and subsequent undo steps
are ignored.
April 20, 2015, 10:24 (GMT)
Sanity check: if there is no edited/active object for an undo step,
consider it invalid and clean up.
April 20, 2015, 10:24 (GMT)
Removed deprecated UI button for the hair debug flag.
April 20, 2015, 10:24 (GMT)
Extended Mesh <-> BMesh copy function versions for specifying custom
data masks explicitly.

A dummy mesh is used for strand edit undo storage like in mesh edit
to prevent unnecessary code duplication. However, when copying from/to
BMesh only the mesh data layers are copied by default, omitting the new
data layers for strands (currently only MSurfaceSample hair root data).
April 20, 2015, 10:24 (GMT)
Basic undo support in the new strand edit mode.

This uses the generalized undo stack system which is also used for
object data edit. An extension is necessary to tell the undo functions
which object is specifically used for generating undo data and
identifying the stack, since strand editing does not edit the obdata
itself.
April 20, 2015, 10:24 (GMT)
Disabled the partial IK strand relaxation for the time being.

First goal is to reproduce current particle edit tools in the strand
edit mode, then make improvements.
April 20, 2015, 10:24 (GMT)
Border Select operator for hair edit mode.
April 20, 2015, 10:24 (GMT)
Select Linked operator for hair edit mode (select all vertices of a
strand).
April 20, 2015, 10:24 (GMT)
Select/Deselect All operator for hair edit mode.
April 20, 2015, 10:24 (GMT)
Lasso Select operator for hair edit mode.
April 20, 2015, 10:24 (GMT)
Mouse Select operator for hair edit mode.
April 20, 2015, 10:24 (GMT)
Missing bmesh include path in scons files.
April 20, 2015, 10:24 (GMT)
IK solver for hair strands that provides a better solution for keeping
consistent segment lengths when transforming vertices.

Warning: The implementation is not correct yet, but all the steps should
be there.

The main idea is to treat strands as a sequence of joints that are
displaced out of their original locations by a transform or other tool.
The solver then tries to find a global per-strand solution that keeps
the segment lengths unmodified, with a minimum change in angles from
the original starting shape. Such a solution is much more usable and
efficient than the current O(n^2) attempt of "spreading the error"
across the strand.

The inverse kinematics method is very flexible. It can also include
stretching, which would be very welcome for features like the length
tool. Different parts of the strand could be weighted separately using
scaling factors for the angle/stretch parameters.

Conflicts:
source/blender/physics/intern/implicit.h
April 20, 2015, 10:23 (GMT)
Primitive transform operator support for strand vertices.

This does not yet prevent root transforms and/or length changes.
April 20, 2015, 10:23 (GMT)
Ported over the relaxation method for hair vertices from particle edit
mode.

This method is simple, but not really very usable. It works by
successively relaxing segments that are too long or too short, moving
both vertices along the edge between them. This is repeated N^2 times
(N: number of vertices on the strand).

A true IK solver could give a lot better results, as well as providing
many opportunities to apply weighting for targets (e.g. preferring to
move non-selected over selected vertices). Many different methods for
simple IK solvers exist, so there should be one that works well for
large number of simple strands. See e.g.
http://www.math.ucsd.edu/~sbuss/ResearchWeb/ikmethods/iksurvey.pdf
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021