Blender Git Loki

Git Commits -> Revision b6b2f37

Revision b6b2f37 by Joshua Leung (master)
October 13, 2012, 10:42 (GMT)
Lattice Editing: Distortion-Free "Flip" Operator

This operator (Ctrl-F) allows you to flip the lattice coordinates without
inverting the normals of meshes deformed by the lattice (or the lattice's
deformation space for that matter). Unlike the traditional mirror tool, this
tool is aware of the fact that the vertex order for lattice control points
matters, and that simply mirroring the coordinates will only cause the lattice
to have an inverted deform along a particular axis (i.e. it will be scaling by a
negative scaling factor along that axis).

The problems (as I discovered the other day) with having such an inverted
deformation space are that:
- the normals of meshes/objects inside that will be incorrect/flipped (and will
disappear in GLSL shading mode for instance)
- transforming objects deformed by the lattices will become really tricky and
counter-intuitive (e.g. rotate in opposite direction by asymmetric amounts to
get desired result)
- it is not always immediately obvious that problems have occurred

Specific use cases this operator is meant to solve:
1) You've created a lattice-based deformer for one cartoonish eye. Now you want
to make the second eye, but want to save some time crafting that basic shape
again but mirrored.
2) You've got an even more finely crafted setup for stretchy-rigs, and now need
to apply it to other parts of the rig.

Notes:
* I've implemented a separate operator for this vs extending/patching mirror
transform tool as it's easier to implement this way, but also because there are
still some cases where the old mirroring seems valid (i.e. you explicitly want
these sort of distortion effects).
* Currently this doesn't take selections into account, as it doesn't seem useful
to do so.

Commit Details:

Full Hash: b6b2f37f2759a4738d6db970a7bda21709783f81
SVN Revision: 51295
Parent Commit: 29ab21e
Lines Changed: +256, -1

4 Modified Paths:

/release/scripts/startup/bl_ui/space_view3d.py (+1, -0) (Diff)
/source/blender/editors/object/object_intern.h (+1, -0) (Diff)
/source/blender/editors/object/object_lattice.c (+251, -1) (Diff)
/source/blender/editors/object/object_ops.c (+3, -0) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021