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
2021-06-24Cleanup: comment blocks, trailing space in commentsCampbell Barton
2021-06-18Armature: add B-Bone Y scale channel and extra flag fields to DNA.Alexander Gavrilov
In addition to the base bone transformation itself, B-Bones have controls that affect transformation of its segments. For rotation the features are quite complete, allowing to both reorient the Bezier handles via properties, and to control them using custom handle bones. However for scaling there are two deficiencies. First, there are only X and Y scale factors (actually X and Z), while lengthwise all segments have the same scaling. The ease option merely affects the shape of the curve, and does not cause actual scaling. Second, scaling can only be controlled via properties, thus requiring up to 6 drivers per joint between B-Bones to transfer scaling factors from the handle bone. This is very inefficient. Finally, the Z channels are confusingly called Y. This commit adds a B-Bone Y Scale channel and extra B-Bone flag fields to DNA with appropriate versioning (including for F-Curves and drivers) in preparation to addressing these limitations. Functionality is not changed, so the new fields are not used until the following commits. Differential Revision: https://developer.blender.org/D9870
2020-12-04Cleanup: Clang-Tidy, modernize-deprecated-headersSybren A. Stüvel
No functional changes.
2020-11-07Cleanup: Clang-tidy, modernize-concat-nested-namespacesAnkit Meel
2020-10-19Spelling: It's Versus ItsHarley Acheson
Corrects incorrect usage of contraction for 'it is', when possessive 'its' was required. Differential Revision: https://developer.blender.org/D9250 Reviewed by Campbell Barton
2020-06-29Depsgraph: introduce blender::deg namespaceJacques Lucke
Reviewers: sergey Differential Revision: https://developer.blender.org/D8150
2020-06-26Cleanup: Depsgraph, remove unused `Base *` parameterSybren A. Stüvel
The `Base *` parameter of `DepsgraphRelationBuilder::build_object()` was made redundant by c7694185c92aa. This commit actually removes it. No functional changes.
2020-05-08Cleanup: take includes out of 'extern "C"' blocksJacques Lucke
Surrounding includes with an 'extern "C"' block is not necessary anymore. Also that made it harder to add any C++ code to some headers, or include headers that have "optional" C++ code like `MEM_guardedalloc.h`. I tested compilation on linux and windows (and got help from @LazyDodo). If this still breaks compilation due to some linker error, the header containing the symbol in question is probably missing an 'extern "C"' block. Differential Revision: https://developer.blender.org/D7653
2020-04-28Merge branch 'blender-v2.83-release'Bastien Montagne
Conflicts: source/blender/blenkernel/intern/lib_query.c source/blender/depsgraph/intern/builder/deg_builder_relations.cc
2020-04-28Depsgraph: Add IDProperties handling.Bastien Montagne
Fix T75279: BLI_assert failed when deleting object in debug build (only). And all general cases of ID pointer idproperties that would use a data-block not referenced anywhere else in the depsgraph. This includes idproperties from: * All ID types; * Bones and pose bones; * Sequences; * Nodes and sockets. Differential Revision: https://developer.blender.org/D7551
2020-04-15Cleanup: unused variable, spellingCampbell Barton
2020-04-10Fix T67232: Multiples targetless IKs in a chain gives weird behaviour (known ↵Sebastian Parborg
as FakeIK for FK posing) The issue was that the deps graph relation builder assumed that all bones that had a IK constraint on them would be evaluated. However for targetless IK bones, only the active bone would receive updates and the others would be skipped (as those would be treated as if the IK constraint was disabled). I didn't see an easy way to solve this from the depsgraph side of things. Instead I came up with a solution that I feel is quite strait forward and reflects what is actually supposed to happen under the hood. Now all targetless IK constraints are treated as disabled and will not be added to any relations in the depsgraph. Instead, a temporary IK constraint will be created when the bone in question is transformed. This is basically activating "Auto IK" for the bone while transforming. Reviewed By: Sergey, Brecht Differential Revision: http://developer.blender.org/D7378
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-01-30Merge remote-tracking branch 'origin/blender-v2.82-release'Sybren A. Stüvel
2020-01-30Fix T73051: Multiple IK chains influencing the same bone don't workSybren A. Stüvel
This patch fixes {T73051}. The cause of the issue was the absence of relations in the depsgraph between IK solvers of overlapping IK chains. Reviewed By: sergey, brecht Differential Revision: https://developer.blender.org/D6700
2020-01-28Cleanup: changed NULL to nullptr in depsgraph C++ codeSybren A. Stüvel
No functional changes.
2020-01-24Depsgrapg: Refactor, move Relation to own fileSergey Sharybin
2019-06-28Fix T62990: Selecting bones causes pose to be re-evaluatedSergey Sharybin
2019-05-14Depsgraph: dependency on B-Bone start handle end roll when inheriting it.Alexander Gavrilov
Specifically the dependency is on any drivers that may be affecting the RNA property of the handle bone, which currently link to segments.
2019-04-30Depsgraph: build bbone operation if bone segments has animationSergey Sharybin
This is a part of T61296: Crash with animated b-bone segments. Consider animated/driven bendy bones segments as something what requires special bendy-bones operation and relation in the dependency graph. This is because it is more beneficial from a performance point of view to not build operations if they are not needed. But if the property is animated it is not possible to make any reliable decision based on just a property value. Differential Revision: https://developer.blender.org/D4739
2019-04-23Depsgraph: fix standard IK target dependencies.Alexander Gavrilov
Targeting a different object always requires its transform, and normally dependencies should go to the solver node. ITASC is quite broken so special case it until fixed.
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-15Fix T63574: missing implicit parent bone dependency in proxies.Alexander Gavrilov
Although technically evaluating the proxy copy nodes doesn't require the parent bone to be copied, other nodes that depend on the bones sometimes expect the parent to be ready. To meet this expectation it's necessary to add the dependency to the graph.
2019-04-14Fix T59622: dependency problems with Spline IK.Alexander Gavrilov
The bug is caused by problems in the dependency graph. Unfortunately, fixing is not just a matter of fixing the graph, because correct dependencies would cause a cycle here and in other reasonable use cases. The real fix thus requires refactoring Spline IK to require curve data only in the actual evaluation phase, and not in POSE_INIT_IK. In addition, this separates the normal bone evaluation loop from Spline IK computations for two reasons: - That still needs to be done even if spline IK can't evaluate due to missing curve data. - It should reduce issues with induced shearing, as Spline IK now controls how parent-child relations are handled in the chain, and can take care to only carry over rotation and location.
2019-04-14Depsgraph: fix debug print crash on IK constraint without target.Alexander Gavrilov
2019-04-13Fix T62048: crash when turning off curve path animation with Spline IK.Alexander Gavrilov
Both fix missing depsgraph flag, and gracefully give up on missing data.
2019-04-01Cleanup: IndentationSergey Sharybin
Got broken in the previous commit somehow.
2019-04-01Fix memory leak in armatures with no bonesSergey Sharybin
The cleanup operation was never run for such armatures.
2019-03-13Fix T62521: Fake dependency cycle with spline IKSergey Sharybin
The core was hooking up relation to a wrong operation, in an attempt to cause proper full update of the pose (since there is no intermediate state stored anywhere). This is now done as a part of flush_handle_component_node(), so can properly route more granular relation. This fixes the crash which was caused by an access of partially evaluated data by solving the fake cycle. However, if there is a real cycle involved the code will still not survive, but this is more generic issue (which also includes modifiers for meshes and curves). Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D4509
2019-03-13Fix T60185: Crash on adding Inverse KinematicsJose C. Rubio
When having loops in a kinematic chain and also a IK constrain, the solve_cycle function removes graph relations necessary to ensure the cleanup operation was running at the very end. Due to his Blender was crashing when some operations (the bone constraints) accessed a pointer that was already freed. Solved by adding more relations between crucial nodes.
2019-03-07Refactor CDData masks, to have one mask per mesh elem type.Bastien Montagne
We already have different storages for cddata of verts, edges etc., 'simply' do the same for the mask flags we use all around Blender code to request some data, or limit some operation to some layers, etc. Reason we need this is that some cddata types (like Normals) are actually shared between verts/polys/loops, and we don’t want to generate clnors everytime we request vnors! As a side note, this also does final fix to T59338, which was the trigger for this patch (need to request computed loop normals for another mesh than evaluated one). Reviewers: brecht, campbellbarton, sergey Differential Revision: https://developer.blender.org/D4407
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-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-01Cleanup: remove original authorCampbell Barton
Missed when removing contributors.
2019-02-01Depsgraph: Use operation code for armature evaluationSergey Sharybin
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-01-31Fix T60836: Stretch to flickers when vertex group is usedSergey Sharybin
Missing relation to object transform. Needed to convert vertex position from local target object space to a local space of the bone.
2019-01-31Depsgraph: Comb code to a better state all overSergey Sharybin
Some summary of changes: - Don't use DEG prefix for types and enumerator values: the code is already inside DEG namespace. - Put code where it locally belongs to: avoid having one single header file with all sort of definitions in it. - Take advantage of modern C++11 enabled by default.
2018-12-08Cleanup: styleCampbell Barton
2018-12-07Depsgraph: Make data allocation dependency more robustSergey Sharybin
This fix aims to fix crash/assert failure related on wrong evaluation order which happens when there is a cyclic dependency involved. The rationality of this change is that we can allow use of uninitialized scalar value, but memory is better be allocated. This might not be ideal still, but worth a try.
2018-12-07Depsgraph: Use shorter relation nameSergey Sharybin
It is clear enough already that it goes From to To.
2018-12-07Depsgraph: Cleanup, line lengthSergey Sharybin
2018-12-03Depsgraph: completely move customdata_mask to the ID node.Alexander Gavrilov
Move all mask-related fields from Object and OperationDepsNode to Object_Runtime and IDDepsNode. Auto-apply DEG_TAG_GEOMETRY if the mask changes after DEG rebuild. Update DEG API and all code that uses it. This fixes "source mesh data is not ready" errors from Data Transfer modifier when parameters are changed in the UI after the recent mesh_get_eval_final fix. Reviewers: sergey Differential Revision: https://developer.blender.org/D4025
2018-12-02Merge branch 'master' into blender2.8Campbell Barton
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-22Depsgraph: Ensure solver cleanup orderSergey Sharybin
Ensure that pose cleanup is never run before all IK solvers are finished.
2018-11-22Depsgraph: Cleanup, line wrappingSergey Sharybin
2018-11-22Depsgraph: Cleanup, make it easier to create relations with flagsSergey Sharybin
2018-11-16Fix T56673: Tara.blend from Blender cloud crashes on loadSergey Sharybin
The issue was caused by dependency cycle solver killing relation which was guaranteed various things: i.e. copy-on-write component orders and pose evaluation order (which must first run pose init function). Now it is possible to prevent such relations from being ignored. This is not a complete fix, but is enough to make this specific rig to work. Ideally, we also need to run copy-on-write operation prior to anything else.
2018-11-07Depsgraph: Ensure dependency cycle does not clear runtime memorySergey Sharybin
If there was a dependency cycle involved, it was possible that pchan array will be freed before all bones are evaluated. Now clear is done in a dedicated node, which is never a part of dependency cycle.