Blender Git Loki

Git Commits -> Revision 036efa1

Revision 036efa1 by Alexander Gavrilov
May 29, 2017, 18:39 (GMT)
Squashed commits of the staging smooth-curves branch:

commit b4423d0f2c1ccd522dbc689d75649b4e31c96be9
Author: Alexander Gavrilov <angavrilov@gmail.com>
Date: Mon May 8 12:03:40 2017 +0300

Implement smoothed auto handle placement with cyclic extrapolation.

Cyclic extrapolation is implemented as an f-curve modifier, so this
technically violates abstraction separation and is something of a hack.
However without such behavior achieving smooth looping with cyclic
extrapolation is extremely cumbersome.

The new behavior is applied when the first modifier is Cyclic
extrapolation in Repeat or Repeat with Offset mode without
using influence, repeat count or range restrictions.

commit fd8c81ec91ba4c3d1656387c879256289654afde
Author: Alexander Gavrilov <angavrilov@gmail.com>
Date: Mon May 1 20:39:44 2017 +0300

Implement a new automatic handle algorithm to produce smooth F-Curves.

The legacy algorithm only considers two adjacent points when computing
the bezier handles, which cannot produce satisfactory results. Animators
are often forced to manually adjust all curves.

The new approach instead solves a system of equations to trace a cubic spline
with continuous second derivative through the whole segment of auto points,
delimited at ends by keyframes with handles set by other requirements.

This algorithm also adjusts Vector handles that face ordinary bezier keyframes
to achieve zero acceleration at the Vector keyframe, instead of simply pointing
it at the adjacent point.

Original idea and implementation by Benoit Bolsee <benoit.bolsee@online.be>;
code mostly rewritten to improve code clarity and extensibility.

commit ed3d6782a58bb840febe11f91103aabd9fc00e5f
Author: Alexander Gavrilov <angavrilov@gmail.com>
Date: Sun Apr 30 16:14:39 2017 +0300

Trigger FCurve handle recalculation on updates to curve modifiers.

If automatic curve handles are changed to be aware of the Cycles
modifier to provide a smooth loop transition, they have to be updated
when the modifier is added, removed or its options change.

Due to the way code is structured, it seems it requires a helper
link to the containing curve from the modifier object.

commit fe21825f65c0e8647d36d2e5514fc0cdd614d5fe
Author: Dalai Felinto <dfelinto@gmail.com>
Date: Mon Nov 18 16:58:23 2013 -0200

force fcurve AUTO handlers to use 1/3 of the distance for smoothness
see: http://www.blender.org/forum/viewtopic.php?p=65508&sid=02e88fe6e3a43338ec8bc354991bc402

Note: this is also used by the curve code. The magic number 2.5614f
comes from review 290361776e5858b3903a83c0cddf722b8340e699

Commit Details:

Full Hash: 036efa1ce5640b894afa2ff5d0226aa75d1e5b3b
Parent Commit: 1c054be
Lines Changed: +778, -35

20 Modified Paths:

/source/blender/blenkernel/BKE_curve.h (+2, -0) (Diff)
/source/blender/blenkernel/BKE_fcurve.h (+2, -1) (Diff)
/source/blender/blenkernel/intern/curve.c (+524, -5) (Diff)
/source/blender/blenkernel/intern/fcurve.c (+61, -4) (Diff)
/source/blender/blenkernel/intern/fmodifier.c (+14, -1) (Diff)
/source/blender/blenkernel/intern/ipo.c (+1, -1) (Diff)
/source/blender/blenlib/BLI_math_solvers.h (+5, -0) (Diff)
/source/blender/blenlib/intern/math_solvers.c (+116, -0) (Diff)
/source/blender/blenloader/intern/readfile.c (+8, -5) (Diff)
/source/blender/editors/animation/drivers.c (+1, -1) (Diff)
/source/blender/editors/animation/fmodifier_ui.c (+9, -2) (Diff)
/source/blender/editors/include/ED_anim_api.h (+1, -1) (Diff)
/source/blender/editors/object/object_constraint.c (+1, -1) (Diff)
/source/blender/editors/object/object_relations.c (+1, -1) (Diff)
/source/blender/editors/space_action/action_edit.c (+1, -1) (Diff)
/source/blender/editors/space_graph/graph_edit.c (+6, -6) (Diff)
/source/blender/editors/space_nla/nla_edit.c (+3, -3) (Diff)
/source/blender/makesdna/DNA_anim_types.h (+1, -0) (Diff)
/source/blender/makesdna/DNA_curve_types.h (+8, -1) (Diff)
/source/blender/makesrna/intern/rna_fcurve.c (+13, -1) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021