Blender Git Statistics -> Developers -> angavrilov

Alexander Gavrilov (angavrilov)

Total Commits : 569
Master Commits : 364
Branch Commits : 205
First Commit : January 20, 2016
Latest Commit : July 30, 2021 (Yesterday)

Commits by Month

DateNumber of Commits
July, 20216
June, 202137
May, 202116
April, 20217
March, 20210
February, 20211
January, 202180
December, 202038
November, 202010
October, 20208
September, 20200
August, 20205
July, 20205
June, 20203
May, 20200
April, 20200
March, 20201
February, 20201
January, 20207
December, 20194
November, 201918
October, 20192
September, 201925
August, 201913
July, 20190
June, 20192
May, 201933
April, 201928
March, 20192
February, 20190
January, 20196
December, 201831
November, 201839
October, 201825
September, 20189
August, 20184
July, 20183
June, 20180
May, 20180
April, 20181
March, 20182
February, 20180
January, 20180
December, 20170
November, 20171
October, 201710
September, 20170
August, 201711
July, 20170
June, 20170
May, 20176
April, 20172
March, 20170
February, 20170
January, 20176
December, 20161
November, 20161
October, 20162
September, 20166
August, 201624
July, 20167
June, 20163
May, 20167
April, 20160
March, 20160
February, 20161
January, 20169

Commit Distribution

PathNumber of Commits
master364
hair_object100
temp-outliner-visibility97
collada2.866
blender2.8_snap_gizmo38
temp-ui-layout-2.823
interactive_physics16
temp-angavrilov-constraints9
temp-blender-2.81-release-with-wrong-merge6
temp-lanpr-staging6
temp-angavrilov-material-uniforms5
temp-lanpr-cleanup25
temp-fracture-modifier-2.84
fracture_modifier-master4
smooth-fcurves4
blender-v2.78c-release4
fracture_modifier4
blender-v2.78b-release4
temp-select-axis4
soc-2021-curves3
asset-browser2
temp-pose-flipping-fix-attempt2
soc-2017-normal-tools2
temp-attribute-processor2
smooth-curves2
blender-v2.78-release2
temp-lanpr-cleanup2
asset-browser-poselib2
soc-2021-porting-modifiers-to-nodes-decimate2
temp-clang-format1
blender-v2.81-release1
temp-lineart-contained1
fix-489911
lineart-shadow1
cycles_texture_cache1
lineart-bvh1

Favourite Files

FilenameTotal Edits
constraint.c133
rna_constraint.c102
DNA_constraint_types.h97
armature.c72
armature_add.c59
properties_constraint.py59
action.c49
deg_builder_relations.cc48
rna_armature.c37
BKE_armature.h36

File Changes

ActionTotalPer Commit
Added1 2642.2
Modified6 20310.9
Deleted1 2372.2

Code Changes

ActionTotalPer Commit
Lines Added51 15592.8
Lines Removed17 99532.7

Latest commits Feed

Revision 2b3f1fe by Alexander Gavrilov / Fabian Schempp (soc-2021-porting-modifiers-to-nodes-decimate)
1 day and 7 hours ago
Versioning: fix vertex group name loss in linked duplicates.

After rB3b6ee8cee708 by @HooglyBoogly vertex groups were moved
to mesh data, and versioning code was provided to upgrade old
files. However, it fails to consider the case of linked duplicates
having different name lists, and dependent on the object order
can cause some of the names to be lost. This can even be all of
them, if there is a duplicate without any names, which can be
easily created by lazy Python code.

To fix this, change the code to use the longest available name list.

Differential Revision: https://developer.blender.org/D11958
Revision e2ffe9d by Alexander Gavrilov / Fabian Schempp (soc-2021-porting-modifiers-to-nodes-decimate)
1 day and 7 hours ago
Surface Deform: support sparse binding mode for improving performance.

When a vertex group is used to limit the influence of the modifier
to a subset of vertices, binding data for vertices with zero weight
is not needed. This wastes memory, disk space and CPU cycles.

If the vertex group contents is known to be final and constant,
it is reasonable to optimize by only storing data group vertices.
This has to be an option in case the group can change.

Supporting this requires adding a vertex index field and spliting
the vertex count into mesh and bind variants, but both happen to
fit in available padding. The old numverts field is renamed to the
new bound vertex count field to maintain the array length invariant.
Versioning is used to initialize the other new fields.

If a file with sparse binding is opened in an old blender version,
it is corrupted into a non-sparse bind with vertex count mismatch,
preventing the modifier from working until rebind.

Differential Revision: https://developer.blender.org/D11924
Revision fc32567 by Alexander Gavrilov (master)
July 18, 2021, 16:09 (GMT)
Versioning: fix vertex group name loss in linked duplicates.

After rB3b6ee8cee708 by @HooglyBoogly vertex groups were moved
to mesh data, and versioning code was provided to upgrade old
files. However, it fails to consider the case of linked duplicates
having different name lists, and dependent on the object order
can cause some of the names to be lost. This can even be all of
them, if there is a duplicate without any names, which can be
easily created by lazy Python code.

To fix this, change the code to use the longest available name list.

Differential Revision: https://developer.blender.org/D11958
Revision 1ab6d5c by Alexander Gavrilov (master)
July 16, 2021, 13:12 (GMT)
Surface Deform: support sparse binding mode for improving performance.

When a vertex group is used to limit the influence of the modifier
to a subset of vertices, binding data for vertices with zero weight
is not needed. This wastes memory, disk space and CPU cycles.

If the vertex group contents is known to be final and constant,
it is reasonable to optimize by only storing data group vertices.
This has to be an option in case the group can change.

Supporting this requires adding a vertex index field and spliting
the vertex count into mesh and bind variants, but both happen to
fit in available padding. The old numverts field is renamed to the
new bound vertex count field to maintain the array length invariant.
Versioning is used to initialize the other new fields.

If a file with sparse binding is opened in an old blender version,
it is corrupted into a non-sparse bind with vertex count mismatch,
preventing the modifier from working until rebind.

Differential Revision: https://developer.blender.org/D11924
Revision bc8ae58 by Alexander Gavrilov (master)
July 2, 2021, 12:15 (GMT)
Copy Transforms: implement Remove Target Shear and more Mix options.

This constraint can be naturally viewed as a prototype for a future
4x4 matrix math node (or subset thereof), since its basic semantics
already is matrix assignment. Thus it makes sense to add math options
to this constraint to increase flexibility in the meantime.

This patch adds support for several operations that would be useful:

- An option to remove shear in the incoming target matrix.

Shear is known to cause issues for various mathematical operations,
so an option to remove it at key points is useful.

Constraints based on Euler like Copy Rotation and Limit Rotation
already have always enabled shear removal built in, because their
math doesn't work correctly with shear.

In the future node system shear removal would be a separate node
(and currently Limit Rotation can be used as a Remove Shear constraint).
However removing shear from the result of the target space conversion
before mixing (similar to Copy Rotation) has to be built into
Copy Transforms itself as an option.

- More ways to combine the target and owner matrices.

Similar to multiple Inherit Scale modes for parenting, there are
multiple ways one may want to combine matrices based on context.
This implements 3 variants for each of the Before/After modes
(one of them already existing).

- Full implements regular matrix multiplication as the most basic
option. The downside is the risk of creating shear.
- Aligned emulates the 'anti-shear' Aligned Inherit Scale mode,
and basically uses Full for location, and Split for rotation/scale.
(This choice already existed.)
- Split Channels combines location, rotation and scale separately.

Looking at D7547 there is demand for Split Channels in some cases,
so I think it makes sense to include it in Copy Transforms too, so that
the Mix menu items can be identical for it and the Action constraint.

Differential Revision: https://developer.blender.org/D9469
Revision 5a693ce by Alexander Gavrilov (master)
July 2, 2021, 12:15 (GMT)
Constraints: support a new Local Space (Owner Orientation) for targets.

Add a new transformation space choice for bone constraints, which
represent the local transformation of the target bone in the constraint
owner's local space.

The use case for this is transferring the local (i.e. excluding the
effect of parents) motion of one bone to another one, while ignoring
the difference between their rest pose orientations.

The new option replaces the following setup:

* A `child` bone of the `target`, rotated the same as `owner` in rest pose.
* A `sibling` bone of the `target`, positioned same as `child` in rest
pose and using Copy Transforms in World Space from `child`.
* The `owner` bone constraint uses Local Space of `sibling`.

(This analogy applies provided both bones use Local Location)

Differential Revision: https://developer.blender.org/D9493
Revision 848b47d by Alexander Gavrilov (temp-angavrilov-constraints)
June 22, 2021, 13:43 (GMT)
Animation: allow specifying a custom frame range for actions.

Some operations, e.g. adding a new action strip to NLA, require
knowing the active frame range of an action, but currently it can
only be deduced by scanning the keyframes of the curves within it.
This is not ideal if e.g. curves are staggered for overlap.

As suggested by Nathan Vegdahl, this patch adds Action properties
that allow manually specifying its active frame range, and whether
it is intended to be cyclic. The settings are exposed in a popover
in Action Editor. When enabled, the range is highlighted in the
background using a striped fill to distinguish it from the solid
filled regular playback range.

When set, the frame range is used by NLA. In addition, the Cycle-Aware
Keying option automatically sets up F-Curves newly added to a cyclic
action to use cyclic extrapolation with the correct period.
Revision 5e13986 by Alexander Gavrilov (temp-angavrilov-constraints)
June 22, 2021, 13:43 (GMT)
Animation: support filtering for curves with a cycle period mismatch.

Since the looping behavior is defined per curve rather than at
action level, it is possible for curve loop periods to get out of
sync with each other. This commit adds an option to compare curves
against the frame range specified in the action, and treat those
with a mismatch as errors for the purpose of F-Curve filtering.

When enabled, the check verifies that curves within the action
have valid cyclic extrapolation, and the action period evenly
divides by the curve period (since a curve looping at e.g. half
of the action period length still repeats in sync with the action).
Revision 4c95b03 by Alexander Gavrilov (temp-angavrilov-constraints)
June 22, 2021, 13:43 (GMT)
Temporary Hack: provide B-Bone scale versioning for files with old patch.

Run the versioning code for the conversion of bbone scale to an xyz
vector if it has fields that correspond to the old version of the
patch before that change requiring versioning.

The actual Y (length) scale value from the old patch isn't versioned
and will be lost, requiring manual fixing.
Revision 7b5849d by Alexander Gavrilov (temp-angavrilov-constraints)
June 22, 2021, 13:43 (GMT)
Bone Overlay: support bone wireframe opacity settings.

When weight painting the bone overlay is extremely intrusive,
effectively requiring either extensive use of hiding individual
bones, or disabling the whole bone overlay between selections.

This addresses the issue by adding two bone opacity sliders that
are used for the 'wireframe' armature drawing mode. One directly
controls the opacity in a uniform way. The other one allows fade
based on the depth between the near and far clip planes in order
to provide an automatic visual cue about which bones are closest.

MiikaHweb - Blender Git Statistics v1.06
By: Miika HämäläinenLast update: Nov-07-2014 14:18 MiikaHweb | 2003-2021