Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-04-28Fix T63794: duplicating an armature clears B-Bones' custom handle references.Tomoaki Kawada
This patch fixes T63794 by updating duplicated bones' custom handle references to point to the new armature's bones. The problem occurs because B-Bones of a duplicated armature keep pointing to the old armature's bones. The references are cleared upon entering Edit Mode because there are no matching `EditBone` for such bones, and `find_ebone_link` just returns `NULL` in such cases. Reviewers: mont29, angavrilov Maniphest Tasks: T63794 Differential Revision: https://developer.blender.org/D4726
2019-04-27Cleanup: comments (long lines) in blenkernelCampbell Barton
2019-04-23Cleanup: rename the curveInX etc bbone DNA fields to curve_in_x etc.Alexander Gavrilov
2019-04-23B-Bones: split the Scale In/Out properties into X and Y values.Alexander Gavrilov
As far as I can tell, there is no technical reason why the B-Bone segment thickness scaling can't be separated into two axes. The only downside is the increase in complexity of the B-Bone settings, but this is inevitable due to the increase in flexibility. Updating the file is somewhat complicated though, because F-Curves and drivers have to be duplicated and updated to the new names. Reviewers: campbellbarton Subscribers: icappiello, jpbouza Differential Revision: https://developer.blender.org/D4716
2019-04-22Cleanup: style, use braces for blenkernelCampbell Barton
2019-04-18Armature: remove remains of the object-level deformation data cache.Alexander Gavrilov
Now that B-Bone shape data is kept in bPoseChannel_Runtime, the armature level cache only holds one quaternion value per bone. It can also be moved to runtime, and the structure removed. This has an additional effect that, as far as I can tell, now the Armature modifier can run as soon as all of the bones it actually needs are done, thus making T59848 a purely depsgraph level problem.
2019-04-18Fix T63332: backup and restore bPoseChannel_Runtime data during COW.Alexander Gavrilov
2019-04-17ClangFormat: apply to source, most of internCampbell Barton
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
2019-04-14Fix T63599: fix the zero ease hack for the B-Bone end matrix.Alexander Gavrilov
Negate the second derivative, because it's effectively stepping back.
2019-04-14Cleanup: doxy commentsCampbell Barton
Use doxy references to function and enums, also correct some names which became out of sync.
2019-04-13Fix T37500: implement Bendy bone segment deformation interpolation.Alexander Gavrilov
Previously B-Bone deformation mapped every vertex to just one B-Bone segment. This results in abrupt transformation differences between the sides of each threshold plane, reducing the quality of B-Bone deformation and making the use of shape keys impractical. This commit replaces this approach with a linear blend between the two closest segment transformations, effectively representing the B-Bone as two weight-blended plain bones for each vertex. In order to distribute the interpolation more evenly along the bone, segment matrices for deformation are now computed at points between the segments and at the ends of the B-Bone. The computation also uses the true tangents of the Bezier curve for the orientation. The nodes at the end of the bone require some special handling to deal with zero-length Bezier handles caused by a zero ease value. The Copy Transforms constraint now also smoothly interpolates rotation and scaling along the bone shape when enabled. The initial version of the patch was submitted by @Sam200. Differential Revision: https://developer.blender.org/D4635
2019-04-04Cleanup: remove B-Bone shape pointers from bPoseChanDeform.Alexander Gavrilov
They are pointless copies from pchan->runtime by now.
2019-03-12Make B-Bone deformation code more robust with bad cached segment data.Alexander Gavrilov
Various dependency graph problems can cause obsolete data to reach the armature modifier, so add checks to reduce the chance of crashing.
2019-02-18doxygen: add newline after \fileCampbell Barton
While \file doesn't need an argument, it can't have another doxy command after it.
2019-02-17Cleanup: move object bounding-box into runtime structCampbell Barton
2019-02-11Cleanup: use "_Runtime" suffix for DNACampbell Barton
Was done everywhere except bPoseChannel.
2019-02-06Cleanup: Remove deprecated ghosting codeJacques Lucke
Most of this code is deprecated for many years already and does not work at all in Blender 2.8. Reviewers: brecht, aligorith Differential Revision: https://developer.blender.org/D4271
2019-02-06Cleanup: remove redundant doxygen \file argumentCampbell Barton
Move \ingroup onto same line to be more compact and make it clear the file is in the group.
2019-02-05Cleanup: typo in comment.Bastien Montagne
2019-02-05Cleanup: replace BKE_id_copy_ex by BKE_id_copy where possible.Bastien Montagne
That way it is obvious when we are using default ID copy behaviour, and when we are using advanced/specialized ones.
2019-02-05Cleanup: BKE_library: rename id_copy to BKE_id_copy.Bastien Montagne
Time to follow conventions for that one as well.
2019-02-05Cleanup: BKE_library: remove 'test' param of id_copy.Bastien Montagne
This was used in *one* place only... much better to have a dedicated helper for that kind of things. ;)
2019-02-01Cleanup: remove redundant, invalid info from headersCampbell Barton
BF-admins agree to remove header information that isn't useful, to reduce noise. - BEGIN/END license blocks Developers should add non license comments as separate comment blocks. No need for separator text. - Contributors This is often invalid, outdated or misleading especially when splitting files. It's more useful to git-blame to find out who has developed the code. See P901 for script to perform these edits.
2019-02-01Logging: Use CLOG for blenkernelCampbell Barton
Part of D4277 by @sobakasu
2019-01-26Cleanup: remove redundant BKE/BLI/BIF headersCampbell Barton
2019-01-23GP: Remove unneeded armature codeAntonioya
This line looks a mistake and it's not needed.
2019-01-06Cleanup: add trailing commas to structsCampbell Barton
Needed for clang formatting to workaround bug/limit, see: T53211
2018-12-20Cleanup: namingCampbell Barton
2018-12-12Merge branch 'master' into blender2.8Campbell Barton
2018-12-12Cleanup: use colon separator after parameterCampbell Barton
Helps separate variable names from descriptive text. Was already used in some parts of the code, double space and dashes were used elsewhere.
2018-12-11RNA: provide access to bone parent transform math from Python.Alexander Gavrilov
Applying the effect of bone parent is much more complicated than simple matrix multiplication because of the various flags like Inherit Scale. Thus it is reasonable to provide access to this math from Python for complicated rest pose related manipulations. The simple case of this is handled by Object.convert_space, so the new method is only needed for complex tasks. Differential Revision: https://developer.blender.org/D4053
2018-12-07Cleanup: styleCampbell Barton
2018-12-02Merge branch 'master' into blender2.8Campbell Barton
2018-12-02Cleanup: BKE b-bone API namingCampbell Barton
Use BKE_pchan_bbone prefix.
2018-11-27RNA: expose access to B-Bone shape data from Python.Alexander Gavrilov
B-Bone shape is a non-trivial computation, so access to the results would be useful for Python scripts working with B-Bones, e.g. rig generation. This exposes both final segment matrices, and the tangent vectors computed from the custom handle bones. Since the handle tangents use the axis+roll orientation math of edit bones, add matrix conversion static methods to Bone. Reviewers: campbellbarton Differential Revision: https://developer.blender.org/D3983
2018-11-23Depsgraph: add a new operation node for computing B-Bone segments.Alexander Gavrilov
Computing the shape of a B-Bone is a quite expensive operation, and there are multiple constraints that can access this information in a variety of useful ways. This means computing the shape once per bone and saving it is good for performance. Since the shape may depend on the position of up to two other bones, often in a "cyclic" manner, this computation has to be a separate node with its own dependencies. Reviewers: sergey Differential Revision: https://developer.blender.org/D3975
2018-11-22Cleanup: newlines in error printsCampbell Barton
2018-11-22Cleanup: Use proper module prefix in function namesSergey Sharybin
2018-11-22Fix missing newline in error printSergey Sharybin
2018-11-20Speedup rigs with multiple objects deformed by bbonesSergey Sharybin
Previously each of the objects which has armature modifier will request deformation matricies from bbones. Thing is, all those deformations are the same and do not depend on object which is being modified. What's even worse is that this calculation is not cheap. This change makes it so bbones deformation is calculated once and stored in the armature object. After this armature modifiers simply use it. With a rigs we've got here dependency graph evaluation time goes down from 0.02 sec to 0.012 sec. Possible further optimization is to make bbone deformation calculated at the time when bone is calculated. This will avoid an extra threaded loop over all bones.
2018-11-20Cleanup: Use more const qualifiersSergey Sharybin
2018-11-14Merge branch 'master' into blender2.8Campbell Barton
2018-11-14Cleanup: comment block tabsCampbell Barton
2018-11-05Cleanup: use boolCampbell Barton
2018-10-31Allow changing B-Bone custom handle references from Pose Mode.Alexander Gavrilov
@jpbouza was rather upset these were made read-only, and unlike parents, it's not that hard to allow changing these Bone fields: all is needed is to carefully refresh the matching fields in the relevant bPoseChannel objects and properly tag update. Reviewers: brecht Differential Revision: https://developer.blender.org/D3870
2018-10-17Cleanup: remove some #if 0 blocksJacques Lucke
Reviewers: brecht, campbellbarton Differential Revision: https://developer.blender.org/D3802
2018-10-11Merge branch 'master' into blender2.8Campbell Barton
2018-10-05Add and use a utility for computing B-Bone roll from custom handles.Alexander Gavrilov
This also fixes a stability problem with the start handle due to an incorrect matrix multiplication order.
2018-10-05Add a new B-Bone Custom Handle type that uses the handle bone direction.Alexander Gavrilov
Both original handle types are based on location, and Absolute uses it in a weird way: the Start handle uses the head, while End uses the tail. This makes controlling the shape of the B-Bone via control bone rotation really non-intuitive, especially if trying to add a single control for the tangent in the middle of a B-Bone chain. To remedy this, add a new custom handle type that uses the orientation of the control bone, while completely ignoring location. It is even possible to control both ends of one B-Bone with the same handle bone, resulting in an S shape. Reviewers: brecht Differential Revision: https://developer.blender.org/D3769
2018-10-05Redefine the Relative custom B-Bone handle type to be more reasonable.Alexander Gavrilov
Specifically, it should always use the position of the custom handle bone head, even when affecting the handle at the tail of the main bone, and shouldn't apply the special handling for joining two B-Bones. This handle type was unusably broken before a bug fix included in recent changes, so it should be safe to break backward compatibility.