Revision 0282a84 by Campbell Barton / Julian Eisel (asset-browser, asset-browser-poselib, temp-pose-flipping-fix-attempt) June 5, 2021, 16:02 (GMT) |
Fix assert check in BLI_polyfill_beautify |
Revision af7d49e by Campbell Barton / Julian Eisel (asset-browser, asset-browser-poselib, temp-pose-flipping-fix-attempt) June 5, 2021, 16:02 (GMT) |
BMesh: avoid extra faces-of-edges loop building partial update data |
Revision 3c30d88 by Germano Cavalcante / Julian Eisel (asset-browser, asset-browser-poselib, temp-pose-flipping-fix-attempt) June 5, 2021, 16:02 (GMT) |
Revision 3ef4dc3 by Alexander Gavrilov / Julian Eisel (asset-browser, asset-browser-poselib, temp-pose-flipping-fix-attempt) June 5, 2021, 16:02 (GMT) |
Limit Rotation: add an Euler Order option. Since Limit Rotation is based on Euler decomposition, it should allow specifying the order to use for the same reasons as Copy Rotation does, namely, if the bone uses Quaternion rotation for its animation channels, there is no way to choose the order for the constraint. Ref D9626 |
Revision 244ce47 by Alexander Gavrilov / Julian Eisel (asset-browser, asset-browser-poselib, temp-pose-flipping-fix-attempt) June 5, 2021, 16:02 (GMT) |
Limit Rotation: explicitly orthogonalize the matrix before processing. Add a call to orthogonalize the matrix before processing for the same reasons as D8915, and an early exit in case no limits are enabled for a bit of extra efficiency. Since the constraint goes through Euler decomposition, it would in fact remove shear even before this change, but the resulting rotation won't make much sense. This change allows using the constraint without any enabled limits purely for the purpose of efficiently removing shear. Differential Revision: https://developer.blender.org/D9626 |
June 5, 2021, 16:01 (GMT) |
Merge branch 'master' into asset-browser-snap-dragging |
June 5, 2021, 15:53 (GMT) |
Merge remote-tracking branch 'origin/master' into temp-lineart-contained |
June 5, 2021, 15:51 (GMT) |
Merge branch 'master' into asset-system-filelist |
June 5, 2021, 15:44 (GMT) |
Lineart: Fixed overscan to 0.1 |
Revision 0f6e1e7 by Alexander Gavrilov June 5, 2021, 15:06 (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. |
Revision b11699d by Alexander Gavrilov June 5, 2021, 15:06 (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 a78558a by Alexander Gavrilov June 5, 2021, 15:06 (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 0421eb0 by Alexander Gavrilov June 5, 2021, 15:06 (GMT) |
Copy Transforms: implement Fix 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 fix shear in the incoming target matrix. - More ways to combine target and owner matrix. Shear is known to cause issues for various mathematical operations, so an option to remove it at key points is useful. In the future node system this would be a separate operation, but due to the limits of the constraint stack it has to be built in for now. Finally, add two more ways to combine the matrices (multiplied by two due to the necessity for the Before/After choice). Now there are three combine modes: Full implements regular matrix multiplication as the most basic option. Split Channels combines location, rotation and scale separately. Looking at D7547 there is demand for such a mode in some cases, and even with nodes it's cumbersome to rig manually every time. Finally, Aligned emulates the 'anti-shear' Aligned Inherit Scale mode, and basically uses Full for location, and Split for rotation/scale. Differential Revision: https://developer.blender.org/D9469 |
Revision b86a862 by Alexander Gavrilov June 5, 2021, 15:06 (GMT) |
Armature: add B-Bone lengthwise scaling and custom handle scaling options. 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, but this is the legacy naming), 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. This patch addresses these deficiencies by adding Length scale inputs, and providing toggles to apply custom handle local scale channels to the now four scale-related properties. The 'Length' name is used to avoid confusion due to the X/Y vs X/Z naming. The two Length scale inputs control the ratio between the lengths of the start and end segments of the bone: although for convenience two inputs are provided, the whole chain is still uniformly scaled to fit the curve. A Scale Easing option is provided to multiply the easing value by the Length scale factors to synchronize them - this produces a natural scaling effect where both the shape of the curve and the scale is affected. The second issue is addressed by providing toggles for each handle that multiply each of the X, Z, Length and Ease values by the matching Local Scale channel of the handle bone, thus replacing trivial drivers. The Scale Easing option has no effect on this process since it's easy to just enable both Length and Ease buttons. Finally, this fixes a strange behavior where the segments were not actually scaled in the Y direction to match their actual length, thus producing gaps or overlap depending on the shape of the curve. For transformation the change should be very small if enough segments are used, but this will affect the results of the Copy Transforms and Armature constraints, so a backwards compatibility option is provided. Newly created bones default to the new behavior. Differential Revision: https://developer.blender.org/D9870 |
Revision b5c66b4 by Alexander Gavrilov June 5, 2021, 15:06 (GMT) |
Constraints: add support for a new Owner Local Space 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. Owner Local Space 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) Since the space list is getting long, also add a couple of separators. Differential Revision: https://developer.blender.org/D9493 |
June 5, 2021, 15:04 (GMT) |
LineArt: Fix edge clipping index error. |
Revision dc64186 by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) June 5, 2021, 14:00 (GMT) |
EEVEE: Nodes: Fix environment texture node default mapping and ... ... empty image behavior |
Revision 308d42d by Clément Foucault (eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) June 5, 2021, 13:38 (GMT) |
Merge branch 'draw-viewport-data' into eevee-rewrite |
Revision e6d94b8 by Clément Foucault (draw-viewport-data, eevee-rewrite, temp-eevee-gpencil-rewrite, viewport-compositor) June 5, 2021, 13:36 (GMT) |
DRW: Fix memory leak of GPUTextures The textures needs to be released by iterating. Not by using the free callback. |
Revision f1d1ec9 by Alexander Gavrilov June 5, 2021, 13:30 (GMT) |
Depsgraph: connect up drivers on various physics properties. It seems drivers for physics properties weren't being linked to evaluation nodes. This connects settings used by modifiers to Geometry; particle settings and rigid body data to Transform which seems to contain rigid body evaluation; and force fields to object Transform, since fields can exist on empties. Differential Revision: https://developer.blender.org/D10088 |
|