Blender Git Commits

Blender Git "master" branch commits.

December 31, 2021, 20:32 (GMT)
Nodes: Add Compare node operations to link drag search menu

Exposes compare operations via rna emums.
This uses the rna enum to build the search list using
named operations linked to socket A.
This also weights the Math Node comparison operations lower
for geometry node trees.

Differential Revision:
Revision e79b452 by YimingWu
December 31, 2021, 13:54 (GMT)
LineArt: Correct collection intersection mask logic.

The logic used to be:

"if collection doesn't have child collection, check if ob is from this one"

The correct logic should be:

"if collection child does not have this ob, then check this collection".
Revision 97ae08c by YimingWu
December 31, 2021, 13:26 (GMT)
LineArt: Correct clamping of out of bound isect index

Handles rare cases where line doesn't intersect the triangle correctly.
December 31, 2021, 13:24 (GMT)
Fix T94464: video texture is not refreshing

In the past that worked because the `GPUMaterial` referenced the
`ImageUser` from the image node. However, that design was incompatible
with the recent node tree update refactor (rB7e712b2d6a0d257d272e).
Also, in general it is a bad idea to have references between data that is
owned by two different data blocks.

This incompatibility was resolved by copying the image user from the node
to the `GPUMaterial` (rB28df0107d4a8). Unfortunately, eevee depended
on this reference, because the image user on the node was update when the
frame changed. Because the image user was copied, the image user in the
`GPUMaterial` did not receive the frame update anymore.

This frame update is added back by this commit. The main change is that
the image user iterator now also iterates over image users in `GPUMaterial`s
on material and world data blocks. An issue is that these materials don't
exist on the original data blocks and that caused the check in
`build_animation_images` in the depsgraph to give the wrong answer.
Therefore the check is extended.

Right now the check is not optimal, because it results in more depsgraph
nodes than are necessary. This can be improved when it becomes cheaper
to check if a node tree contains any references to a video texture.
The node tree update refactor mentioned before makes it much easier
to construct this kind of run-time data from the bottom up, instead of
scanning the entire node tree recursively every time some information
is needed.
December 31, 2021, 13:05 (GMT)
Cleanup: Silence warning for wrong const char comparison

Incorrectly used comparison for empty string.

Reported in chat by @jacqueslucke.
December 31, 2021, 10:33 (GMT)
Fix T94416: incorrect handling when nodes are linked in a loop

This just skips the entire algorithm when there are cycles.
In the future, cycles could be handled more gracefully in the
algorithm, but for now that's not worth it and is not necessary
to fix the bug.
December 31, 2021, 02:34 (GMT)
Nodes: Weight drag link search for Math nodes

As @hooglyboogly suggested in D13680, this patch adds weighting
to the search results. Dragging from a vector/rgba socket weights
the Vector Math node higher than a float Math node, and vice versa.

Reviewed By: HooglyBoogly

Differential Revision:
December 31, 2021, 01:15 (GMT)
Fix (unreported): remove menu separators from drag link search

Search was picking up the menu separator entries.
Add check for these which are defined by empty identifier strings.
December 30, 2021, 22:39 (GMT)
Cleanup: Use switch to get gpu shader name

Rather than using the array syntax that doesnt work in C++,
use a switch state which is also much easier to read.
December 30, 2021, 17:42 (GMT)
Nodes: Convert several shader nodes to c++

Also add file namespace

This is needed to use new node APIs

Differential Revision:
December 30, 2021, 11:48 (GMT)
Fix T93868: GPencil material filter does not work with instances

When the material is used in several objects, the filter by material is not working as expected because the internal pointers are different due eval version.

Now, the original version of the material is compared to keep same address.
December 30, 2021, 10:29 (GMT)
Fix T93134: Set origin broken for curve edit mode

Bug: Set Origin causes unexpected offset on Grease Pencil strokes when Curve Editing is enabled.
Fix: Add transformation of editcurve points in `object_origin_set_exec`.

Reviewed By: #grease_pencil, antoniov

Maniphest Tasks: T93134

Differential Revision:
December 30, 2021, 10:18 (GMT)
Fix T93163: GPencil scale thickness fails in negative scales

Before the negative scales produced a thickness invalid. Now, the value is used in absolute value to avoid this situation.
December 30, 2021, 01:22 (GMT)
Nodes: Improve link drag search for Math and Vector Math nodes

Exposes math operations via rna emums.

This uses the rna enum to build the search list.

Differential Revision:
Revision 6d7dbdb by Hans Goudey
December 30, 2021, 00:39 (GMT)
Point Cloud: Optimize bounding box calculation

This is analagous to 6a71b2af66cf10556b21 which did the same
thing for mesh data. Two differences are that here the coordinates
are simply `float3`, and we account for the radius if it's available.
Here I observed a similar performance increase, from 50ms
average to 10ms average, with 16 million points, a 5x speedup.

The calculation is about 1.4 times faster when no radius is used, down
to 7.3ms average. Before, the calculation was only 1.2 times faster.
December 29, 2021, 23:51 (GMT)
Cleanup: clang-tidy modernize-redundant-void-arg
December 29, 2021, 23:36 (GMT)
Nodes: Convert shader, texture category nodes to c++

Also add/correct file namespace

This is needed to use new node APIs

Differential Revision:
Revision c0fdf16 by Hans Goudey
December 29, 2021, 22:53 (GMT)
Fix T94454: Python API curve to mesh use after free without depsgraph

This was caused by a mistake in eb0eb54d9644c5139, which removed
the clearing of the curve edit mode pointers that are set when creating
the temporary data for the conversion. If they are not cleared, the
generic ID free function will also free the edit mode data, which is
wrong when the source curve is in edit mode.
December 29, 2021, 20:45 (GMT)
Modifiers: decrease maximum allocation size for Weld vertices

At the time of allocating the buffer with vertices in context, we don't
know exactly how many vertices are affected, but we do know that it is
less than or equal to twice the number of vertices killed.
December 29, 2021, 18:40 (GMT)
Fix (unreported): missing relations update after adding scene time node

This just moves the relations update to a lower level function that is used
by other functions. Eventually, the special case for this node should be
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021