diff options
author | Stefan Werner <stefan.werner@tangent-animation.com> | 2018-11-23 15:08:15 +0300 |
---|---|---|
committer | Stefan Werner <stefan.werner@tangent-animation.com> | 2018-11-23 15:19:53 +0300 |
commit | 071f4f4ce0b9520ab0c73d6d68365ad449ca8b80 (patch) | |
tree | 9f37bfcac669366b9ad5fb7605f2fbbed9b71b0a /source/blender/editors/animation/anim_ipo_utils.c | |
parent | 0a2b2d59a5897212ba3771503feb6770fb636bc8 (diff) |
Cycles: Improved robustness of hair motion blur.motion_curve_fix
In some instances, the number of control vertices of a hair could change mid-frame.
Cycles would then be unable to calculate proper motion blur for those hairs. This adds
interpolated CVs to fill in for the missing data. While this will not necessarily result in
a fully accurate reconstruction of the guide hair, it preserves motion blur instead of disabling it.
Reviewers: #cycles, sergey
Reviewed By: #cycles, sergey
Subscribers: sergey, brecht, #cycles
Tags: #cycles
Differential Revision: https://developer.blender.org/D3695
Diffstat (limited to 'source/blender/editors/animation/anim_ipo_utils.c')
-rw-r--r-- | source/blender/editors/animation/anim_ipo_utils.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/source/blender/editors/animation/anim_ipo_utils.c b/source/blender/editors/animation/anim_ipo_utils.c index 4e0993152f7..d88a418fa06 100644 --- a/source/blender/editors/animation/anim_ipo_utils.c +++ b/source/blender/editors/animation/anim_ipo_utils.c @@ -19,7 +19,7 @@ * All rights reserved. * * Contributor(s): Blender Foundation, 2005. Full recode - * Joshua Leung + * Joshua Leung * * ***** END GPL LICENSE BLOCK ***** */ @@ -87,10 +87,10 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu) /* For now, name will consist of 3 parts: struct-name, property name, array index * There are several options possible: - * 1) <struct-name>.<property-name>.<array-index> - * i.e. Bone1.Location.X, or Object.Location.X - * 2) <array-index> <property-name> (<struct name>) - * i.e. X Location (Bone1), or X Location (Object) + * 1) <struct-name>.<property-name>.<array-index> + * i.e. Bone1.Location.X, or Object.Location.X + * 2) <array-index> <property-name> (<struct name>) + * i.e. X Location (Bone1), or X Location (Object) * * Currently, option 2 is in use, to try and make it easier to quickly identify F-Curves (it does have * problems with looking rather odd though). Option 1 is better in terms of revealing a consistent sense of @@ -98,11 +98,11 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu) */ /* for structname - * - as base, we use a custom name from the structs if one is available - * - however, if we're showing subdata of bones (probably there will be other exceptions later) - * need to include that info too since it gets confusing otherwise - * - if a pointer just refers to the ID-block, then don't repeat this info - * since this just introduces clutter + * - as base, we use a custom name from the structs if one is available + * - however, if we're showing subdata of bones (probably there will be other exceptions later) + * need to include that info too since it gets confusing otherwise + * - if a pointer just refers to the ID-block, then don't repeat this info + * since this just introduces clutter */ if (strstr(fcu->rna_path, "bones") && strstr(fcu->rna_path, "constraints")) { /* perform string 'chopping' to get "Bone Name : Constraint Name" */ @@ -160,7 +160,7 @@ int getname_anim_fcurve(char *name, ID *id, FCurve *fcu) /* Icon for this property's owner: - * use the struct's icon if it is set + * use the struct's icon if it is set */ icon = RNA_struct_ui_icon(ptr.type); @@ -200,8 +200,8 @@ void getcolor_fcurve_rainbow(int cur, int tot, float out[3]) /* we try to divide the color into groupings of n colors, * where n is: - * 3 - for 'odd' numbers of curves - there should be a majority of triplets of curves - * 4 - for 'even' numbers of curves - there should be a majority of quartets of curves + * 3 - for 'odd' numbers of curves - there should be a majority of triplets of curves + * 4 - for 'even' numbers of curves - there should be a majority of quartets of curves * so the base color is simply one of the three primary colors */ grouping = (4 - (tot % 2)); |