Blender Git Loki

Blender Git commits from all branches.

Page: 554 / 2888

January 29, 2021, 16:04 (GMT)
Force Fields: implement early filtering by the Affect flags.

Most fields have Affect Location and Rotation options that switch
off their effect, but they are only checked as the last step after
the force is already computed. It is more efficient to check it
when building the list of field objects, just like zero weight.
It is also possible to check the strength-related fields for 0.

As an aside, this adds Location to Texture fields (they don't
handle rotation) and both Location & Rotation checkboxes to
Fluid Flow. Boid and Curve Guide remain without options for
now as they are completely different from others.

Differential Revision: https://developer.blender.org/D10087
January 29, 2021, 16:04 (GMT)
Constraints: refactor the D7437 patch adding Custom Space for constraints.

As mentioned in the comments to that patch, I had an idea for
a different way to do some technical aspects, but it was too
complicated to force changes in the original patch. Thus I submit
this follow up patch.

First, instead of modifying all the get_constraint_targets and
flush_constraint_targets callbacks, introduce wrapper functions
for accessing constraint targets, convert all code to use them,
and handle the new reference there uniformly for all constraints.

This incidentally revealed a place in the Collada exporter that
didn't clean up after retrieving the targets.

Also, tag the special target with a flag so other code can
handle it appropriately where necessary. This for instance
allows dependency graph to know that the Use B-Bone Shape
option doesn't affect this specific target.

Finally, rename and simplify the function for initializing the
custom space, and make sure it is called everywhere necessary.

Differential Revision: https://developer.blender.org/D9732
January 29, 2021, 16:04 (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 bone in the constraint
owner's local space.

The use case for this is transferring the local (i.e. excluding the
effect of parents) transformation 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, this adds a couple of separators.

Differential Revision: https://developer.blender.org/D9493
January 29, 2021, 16:04 (GMT)
Limit Rotation: add an Euler Order option and orthogonalize the matrix.

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.

In addition, 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 remove
shear even before the change, but the rotation won't make much sense.

Differential Revision: https://developer.blender.org/D9626
January 29, 2021, 16:04 (GMT)
Copy Transforms: implement Invert, Fix 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.
- An option to invert the 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.

Inverting a matrix is also an operation that can be useful to have.
For some uses it may be useful to invert components separately, so
implement this by checking the Mix mode setting to avoid UI options.

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
January 29, 2021, 15:22 (GMT)
GPencil: Cleanup code

January 29, 2021, 15:12 (GMT)
fix detection of modified data
January 29, 2021, 15:01 (GMT)
GPencil: Draw in all selected frames for draw

Now any selected frame in any layer is used.
January 29, 2021, 14:51 (GMT)
remove debug print
January 29, 2021, 14:38 (GMT)
GPencil: Use all selected frames in any layer for fill

Instead to use only current layer, any selected frame in any layer is used.
January 29, 2021, 14:33 (GMT)
avoid computing the needed global attributes for every geometry
January 29, 2021, 14:29 (GMT)
EEVEE: Depth of field: Fix tile prediction and fast gather threshold

Tile prediction wasn't using the correct threshold and fast gathering
wasn't taking layer weight into consideration.

Both were making tilling artifacts.
January 29, 2021, 13:52 (GMT)
avoid setting up dependencies when the cache file is set to use proxies
January 29, 2021, 13:51 (GMT)
format
January 29, 2021, 13:51 (GMT)
store the offset where the attributes are copied in the buffers in Attribute
January 29, 2021, 13:42 (GMT)
Alembic procedural: avoid unnecessarily constructing Alembic objects

Constructing those objects is a rather expensive operation which involves creating shared pointers and accounted for 60% of the procedural's device_update time when playing back animations with hundreds of objects.
January 28, 2021, 19:25 (GMT)
GPencil: First steps to implement Multiframe fill

Highly experimental
January 28, 2021, 19:07 (GMT)
GPencil: Move free image in fill operator

This is in preparation for multiframe fill
January 28, 2021, 18:54 (GMT)
GPencil: Fix error copying in multiframe

The stroke was copied to all frames, not just selected.
Revision a53105f by Antonio Vazquez (temp-gpencil-fill)
January 28, 2021, 18:49 (GMT)
GPencil: Draw primitives in multiframe

The primitive is duplicated in all selected frames
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021