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-01-18Armature: fix B-Bone deformation blending artifacts with Preserve Volume.Alexander Gavrilov
The double quaternion blending method in addition to the deformation matrix of each bone requires their rest matrices. For ordinary bones this literally should use the bone rest matrix without any ambiguity. However, it was also using the bone rest matrix for all of its B-Bone segments, which is incorrect and causes strange deformation in some cases involving extreme non-uniform scale, especially at boundaries between different B-Bones. There is also a similar known issue that happens with scale at bending joints, and this fix reduces the distortion when both bones are B-Bones. This changes both the Armature modifier and the Armature constraint to use the actual segment rest matrices. Unlike bones, these can have scale even in rest pose, so normalization is required. Differential Revision: https://developer.blender.org/D10003
2020-12-15Cleanup: doxy comments (use colon after parameter name)Campbell Barton
Also remove colon after `\note`.
2020-12-08Cleanup: LibOverride: Forgot to update comments in previous commit.Bastien Montagne
2020-12-08LibOverride: Refactor collection items 'local' helper functions.Bastien Montagne
It's easier to read and less 'weird' to check that an item is non-local in a liboverride data-block, than the other way around. Thanks to @sybren for noticing it.
2020-12-07LibOverride: Abstract a bit handling of local items of RNA collections.Bastien Montagne
RNA collections that support insertion of new items in liboverride data-block need a special way to distiguish between locale and orig-from-linked items (since some operations are allowed on the forer, but no the latter). In future we want a proper solution to abstract that at the `BKE_lib_override` level, but for now we need to add some code for each case. Note that this commit also fixes a few potential issues with GPencil modifiers, and constraints, regarding their handling of local overrides.
2020-12-04Cleanup: clang-formatSybren A. Stüvel
Rerun `make format`. No functional changes.
2020-12-03Add Custom Object Space to ConstraintsHenrik Dick
Add Custom Space to the list of space conversions for constraints. Constraints can use World Space, Local Space, Pose Space, Local with Parent, and now also Custom Space with a custom object to define the evaluation space. The Custom Space option uses the Local Space of an other object/bone/vertex group. If selected on owner or target it will show a box for object selection. If an armature is selected, then it will also show a box for bone selection. If a mesh object is selected it will show the option for using the local space of a vertex group. Reviewed By: #animation_rigging, sybren, Severin, angavrilov Differential Revision: https://developer.blender.org/D7437
2020-11-29Run clang-format to fix line length after D8915.Alexander Gavrilov
2020-11-26Fix T80970: Copy Rotation constraint incorrect under shearJoseph Brandenburg
Orthogonalize the constraint target's matrix before decomposing it into Euler angles. This removes sheer, and is actually a requirement for correct decomposition. It's conceivable that someone has used the incorrect behaviour in a rig. As the shear caused unpredictable flipping of the constrained object, this is unlikely. Reviewed By: angavrilov, sybren Differential Revision: https://developer.blender.org/D8915
2020-11-17Cleanup: Use LISTBASE_FOREACH macroHans Goudey
2020-11-06Refactor: move Constraint .blend I/O to blenkernelJacques Lucke
Ref T76372.
2020-10-30Cleanup: Use an enum to set instanced panel expansionHans Goudey
This commit uses an enum to access expansion for specific panels for each modifier, constraint, etc. Even though these values are quite simple, this can help make the code more explicit when the ui_expand_flag is accessed directly. Also update comments about this bitfield to make them consistent.
2020-10-28Outliner: Properties editor sync on selectionNathan Craddock
When outliner datablocks are selected, switch to the corresponding tab for that datablock in properties editors. Only properties editors that share an edge with the outliner will change tabs. Additionally, when modifiers, constraints, and shader effects are selected from the outliner, the panel will be expanded in all properties editors. Part of T77408 Manifest Task: https://developer.blender.org/T63991 Differential Revision: https://developer.blender.org/D8638
2020-10-10Cleanup: use C comments for descriptive textCampbell Barton
Follow our code style guide by using C-comments for text descriptions.
2020-09-30Cleanup: convert gforge task ID's to phabricator formatValentin
Cleanup old tracker task format to the new. e.g: [#34039] to T34039 Ref D8718
2020-09-19Cleanup: use parenthesis for if statements in macrosCampbell Barton
2020-09-16Action Constraint: Add manual time factor input controlChris Clyne
Adds an optional slider to the action constraint so that it can be driven without a constraint target. This is very helpful for more complex rigging and mechanical rigs, as it means the action constraint can be controlled with a driver/custom property directly, currently if we want to use a driver to control it we must add a "dummy" bone/object inbetween to act as a control. Reviewed By: Sebastian Parborg, Sybren A. Stüvel, Demeter Dzadik, Julian Eisel Differential Revision: http://developer.blender.org/D8022
2020-09-11Constraints: Child-Of, set inverse matrix upon creationJoseph Brandenburg
Set the inverse matrix when the Child Of constraint is created. This prevents the bone/object from jumping away when the constraint is added, improving usability. Reviewed by: sybren Differential Revision: https://developer.blender.org/D8851
2020-09-09Cleanup: reduce variable scopeJacques Lucke
2020-08-29Cleanup: spellingCampbell Barton
2020-08-17Cleanup: spellingCampbell Barton
2020-08-13Cleanup: spellingCampbell Barton
2020-08-08Cleanup: use array syntax for sizeof with fixed valuesCampbell Barton
Also order sizeof(..) first to promote other values to size_t.
2020-08-07Cleanup: pass arrays const where possibleCampbell Barton
2020-08-07Cleanup: Blenkernel, Clang-Tidy else-after-return fixesSybren A. Stüvel
This addresses warnings from Clang-Tidy's `readability-else-after-return` rule in the `source/blender/blenkernel` module. No functional changes.
2020-07-20T77086 Animation: Passing Dependency Graph to DriversSybren A. Stüvel
Custom driver functions need access to the dependency graph that is triggering the evaluation of the driver. This patch passes the dependency graph pointer through all the animation-related calls. Instead of passing the evaluation time to functions, the code now passes an `AnimationEvalContext` pointer: ``` typedef struct AnimationEvalContext { struct Depsgraph *const depsgraph; const float eval_time; } AnimationEvalContext; ``` These structs are read-only, meaning that the code cannot change the evaluation time. Note that the `depsgraph` pointer itself is const, but it points to a non-const depsgraph. FCurves and Drivers can be evaluated at a different time than the current scene time, for example when evaluating NLA strips. This means that, even though the current time is stored in the dependency graph, we need an explicit evaluation time. There are two functions that allow creation of `AnimationEvalContext` objects: - `BKE_animsys_eval_context_construct(Depsgraph *depsgraph, float eval_time)`, which creates a new context object from scratch, and - `BKE_animsys_eval_context_construct_at(AnimationEvalContext *anim_eval_context, float eval_time)`, which can be used to create a `AnimationEvalContext` with the same depsgraph, but at a different time. This makes it possible to later add fields without changing any of the code that just want to change the eval time. This also provides a fix for T75553, although it does require a change to the custom driver function. The driver should call `custom_function(depsgraph)`, and the function should use that depsgraph instead of information from `bpy.context`. Reviewed By: brecht, sergey Differential Revision: https://developer.blender.org/D8047
2020-06-25Cleanup: spellingCampbell Barton
2020-06-25Python API: add methods to allow copying of constraints.Alexander Gavrilov
Blender has an operator to do Copy & Paste of constraints between objects and bones, but no simple method to do that directly via the Python API is provided. This adds a copy() method to object and pose bone constraint collections. Differential Revision: https://developer.blender.org/D8112
2020-06-19UI: Fix check for constraint panel default expansionHans Goudey
2020-06-19UI: Drag and Drop Constraints, Layout UpdatesHans Goudey
This patch implements the list panel system D7490 for constraints. In this case the panels are still defined in Python. The layouts are also updated to use subpanels and the a more organized single column layout. There may be more tweaks necessary for the layouts. Reviewed By: Severin, billreynish, Mets Differential Revision: https://developer.blender.org/D7499
2020-05-28Cleanup: spellingCampbell Barton
2020-05-25Merge remote-tracking branch 'origin/blender-v2.83-release'Dalai Felinto
2020-05-25Fix T76941: "Set Inverse" in Child Of constraint broken with armaturesSybren A. Stüvel
When the Child Of constraint is owned by a bone, before the constraint is run the matrix is converted from world to pose space. However, setting the inverse should also take the armature object's transform into account.
2020-05-11Fix T76438: Wrong calculation of depth for Follow Track constraintSergey Sharybin
Need to transform direction as such, without adding translation component of the camera matrix.
2020-05-11Tracking: Cleanup, split code of follow track constraintSergey Sharybin
Makes a set of more isolated individual functions, which should make it more clear what's going on. Improved naming, added some comments. Some extra cleanup is possible to get rid of generic vectors called vec and disp.
2020-05-01Cleanup: moved drivers to BKE_fcurve_driver.h / fcurve_driver.cSybren A. Stüvel
All the driver-specific code in `fcurve.c` has been moved into a new file `fcurve_driver.c`. The corresponding declarations have been moved from `BKE_fcurve.h` to `BKE_fcurve_driver.h`. All the `#include "BKE_fcurve.h"` statements have been investigated and replaced with `BKE_fcurve_driver.h` where necessary. No functional changes.
2020-04-24Defaults: Change default axes for Track To constraintJulian Eisel
The main use-case for the Track To constraint is camera tracking, so this sets up a better default for this. That is, track to -Z with Y up. Agreed on internally with Pablo Vazquez and William Reynish. Should there be a reason to revert this, that would be fine compatibility-wise.
2020-04-20Tracking: Specify image image for (un)distortion modelSergey Sharybin
Allows to support distortion models which needs to know actual image dimensions to apply or inverse camera intrinsics.
2020-04-09Fix T75490: Child Of - difference between 2.82 and 2.83Sybren A. Stüvel
rB10162d68e385 introduced a difference in computing the matrix, as well as a better way to compute the inverse matrix. This commit reverts the former, while keeping the latter and some other improvements.
2020-04-03Code Quality: Replace for loops with LISTBASE_FOREACHDalai Felinto
Note this only changes cases where the variable was declared inside the for loop. To handle it outside as well is a different challenge. Differential Revision: https://developer.blender.org/D7320
2020-04-03Cleanup: split `BKE_anim.h` and `anim.c` into smaller piecesSybren A. Stüvel
The files are now split up into the following sections: - `BKE_anim_path.h` and `anim_path.c` for path/curve functions. - `BKE_anim_visualization.h` and `anim_visualizationanim_path.c` for animation visualization (mostly motion paths). - `BKE_duplilist.h` for DupliList function declarations. These were already implemented in `object_dupli.c`, so they were rather out of place being declared in `BKE_anim.h` in the first place. No functional changes.
2020-03-29Cleanup: spelling, commentsCampbell Barton
2020-03-20Cleanup: clang-format, comment indentationCampbell Barton
2020-03-19Cleanup: `make format` after SortedIncludes changeDalai Felinto
2020-03-16Cleanup: Typo in commentSergey Sharybin
2020-03-09Alembic: constraint for transform animation is using world matrix againSybren A. Stüvel
In rB7c5a44c71f13 I changed the way transform matrices are loaded from Alembic. Instead of having the Alembic importer convert matrices from local (in the Alembic file) to World (to pass to the constraint handling the animation of transforms), I set the constraint space to `CONSTRAINT_SPACE_LOCAL`. This worked thanks to rB7728bfd4c45c. However, that commit was reverted, which meant that for parentless objects `CONSTRAINT_SPACE_LOCAL` no longer means "local space". The situation is resolved by setting the constraint to world space again, and computing the world matrix in the Alembic importer.
2020-03-09Cleanup: Replace ABS/SQUARE/CUBE with function callsSergey Sharybin
While it might be handy to have type-less functionality which is similar to how C++ math is implemented it can not be easily achieved with just preprocessor in a way which does not have side-effects on wrong usage. There macros where often used on a non-trivial expression, and there was at least one usage where it was causing an actual side effect/bug on Windows (see change around square_f(sh[index++]) in studiolight.c). For such cases it is handy to have a function which is guaranteed to have zero side-effects. The motivation behind actually removing the macros is that there is already a way to do similar calculation. Also, not having such macros is a way to guarantee that its usage is not changed in a way which have side-effects and that it's not used as an inspiration for cases where it should not be used. Differential Revision: https://developer.blender.org/D7051
2020-03-09Revert "Constraints: remove special meaning of Local Space for parentless ↵Sybren A. Stüvel
Objects." This reverts commit 7728bfd4c45c634ba6b62e149176425ec5779945. Although this brings back an inconsistency in the behaviour of constraints on objects and bones, people were relying on the old behaviour, and the new behaviour broke their files. It is still desired to remove this inconsistency, but it will happen more gradually.
2020-03-06Cleanup: use 'BKE_' prefix for BKE_deform API callsCampbell Barton
- Use 'BKE_object_defgroup' prefix for object functions. - Rename 'defvert_verify_index' to 'defvert_ensure_index' since this adds the group if it isn't found.
2020-02-28Objects: make evaluated data runtime storage usable for types other than meshBrecht Van Lommel
This is in preparation of new object types. This only changes mesh_eval, we may do the same for mesh_deform_eval and other areas in the future if there is a need for it. This previously caused a bug in T74283, that should be fixed now. Differential Revision: https://developer.blender.org/D6695