Blender Git Commits

Blender Git "master" branch commits.

Revision f7f558e by Hans Goudey
13 hours 57 min ago
Cleanup: Deduplicate instances component in spreadsheet

Currently we have a separate `InstancesDataSource`, which does almost
exactly the same thing as `GeometryDataSource`, except that it hardcodes
a few more columns: "Name", "Rotation", and "Scale". We can easily
replace that with a couple of if statements in the geometry data source.

This also makes named attributes on instances display
in the spreadsheet.

Differential Revision:
15 hours 7 min ago
Merge branch 'blender-v3.0-release'
17 hours 59 min ago
Fix build error with TBB 2021 and booleans

Linux distributions are using newer TBB versions than official releases, and
TBB 2021 is an API breaking release.

In general we should avoid using TBB directly and go through the abstractions
in BLI_task.hh, though there is no abstraction for this.

For 3.0 the safe option is to just not cancel the task but instead early out
in the lambda function. Given the grain size of 2048 there should be no
significant performance difference.

Differential Revision:
18 hours 1 min ago
Geometry Nodes: Optimize Cube primitive vertex calculation

This patch gets rid of the O(N^3) complexity
of calculate_vertices. Execution time of the node is
reduced from 250ms to 140ms with 500^3 vertices.
In the future edge calculations could be done manually
and reduce the execution time even further.

Differential Revision:
18 hours 49 min ago
Geometry Nodes: Parallelize "Set Spline Type"-node

Parallelizes the loop that converts splines.
It gives around a 2x speedup on curves with over 1k splines.

Differential Revision:
1 day and 14 hours ago
Attempt to fix Windows new bpath tests failing, take IV.

Follow up to rBdcc500e5a265093bc9cc, rB92daff6ac2adb5bb,
rB61bd5882a20c6f3 and rB08264aaf82da8.

Sorry for the noise, this time should be good.
1 day and 14 hours ago
Attempt to fix Windows new bpath tests failing, take III.

Follow up to rBdcc500e5a265093bc9cc, rB92daff6ac2adb5bb and rB61bd5882a20c6f3.
1 day and 15 hours ago
Attempt to fix Windows new bpath tests failing, take II.

Follow up to rBdcc500e5a265093bc9cc and rB92daff6ac2adb5bb.

Also shortening a bit the macros names...
1 day and 18 hours ago
Fix T89564: Spline IK breaks when it is far away from the world origin

The isect_line_sphere algorithm became very imprecise when the line and
the sphere were reasonably far away from the world origin.

This would lead to no intersections being reported even if there was a
guaranteed intersection (line crossing from inside the sphere to the

To fix this we now use the secant root finding method to get an
intersection point. This is much more stable and robust it seems.
1 day and 19 hours ago
Geometry Nodes: add utility to set remaining outputs

Differential Revision:
1 day and 19 hours ago
Attempt to fix Windows new bpath tests failing.

Follow up to rBdcc500e5a265093bc9cc.
1 day and 19 hours ago
Fix T93402: Linking Collections instantiate extra sub-collections.

Linking is more relax than appending when it comes to instantiating
indirectly linked collections/objects.
1 day and 19 hours ago
Cleanup: remove warnings

This assert was producing warning in debug builds because
it was never hit under some circumstances.
1 day and 21 hours ago
Geometry Nodes: optimize Set Position node

This implements four optimizations in the Set Position node:
* Check whether the position input is the current position and ignore
it if it is. This results in a speedup when only the Offset input is used.
* Use multi-threading when copying to computed values to the
position attribute. All geometry types benefit from this.
* Use devirtualization for the offset and position input. This optimizes
the common case that they are either single values or computed
in the fly in a span.
* Write to `Mesh->mvert` directly instead of creating a temporary span.
This makes setting mesh vertex positions even more efficient.

In my simple benchmark I'm using a White Noise node to offset the
position of 1,000,000 vertices. The speed is `20 ms -> 4.5 ms` in the
multi-threaded case and `32 ms -> 22 ms` in the single-threaded case.
1 day and 22 hours ago
Cycles: Fix film convert address space mismatch on Metal

This patch fixes an address space mismatch in the film convert kernels on Metal. The `film_get_pass_pixel_...` functions take a `ccl_private` result pointer, but the film convert kernels pass a `ccl_global` memory pointer. Specialising the pass-fetch functions with templates results in compilation errors on Visual Studio, so instead this patch just adds an intermediate local on Metal.

Reviewed By: brecht

Differential Revision:
1 day and 22 hours ago
Fix T93290: Rotation without contraint after extrude has wrong axis

The default orientation of the mode was being indicated as overridden,
although the one of constraint was used.
1 day and 22 hours ago
Geometry Nodes: deduplicate virtual array implementations

For some underlying data (e.g. spans) we had two virtual array
implementations. One for the mutable and one for the immutable
case. Now that most code does not deal with the virtual array
implementations directly anymore (since rBrBd4c868da9f97a),
we can get away with sharing one implementation for both cases.
This means that we have to do a `const_cast` in a few places, but
this is an implementation detail that does not leak into "user code"
(only when explicitly casting a `VArrayImpl` to a `VMutableArrayImpl`,
which should happen nowhere).
1 day and 22 hours ago
Fix T89081: Freestyle noise seed of zero crash

This leads to division by zero in Freestyle's NoiseShader which also
crashes blender.

Not sure if we really need a do_version patch for old files, as an
alternative we could also force a positive number in the NoiseShader.
This patch does not do either, just force a positive range in RNA from
now on.

Maniphest Tasks: T89081

Differential Revision:
1 day and 22 hours ago
Fix T93130: Frame Selected with selected paint mask does not work

This broke with {rB20fac2eca723} (which landed in 2.63), so long
standing bug.

Convention for paint modes is:
- when no paint mask is active, `Frame Selected` will focus the last
- when paint mask is active, `Frame Selected` will focus the selected
mask faces

To check the right vert coords we have to offset with `mp->loopstart`.

Maniphest Tasks: T93130

Differential Revision:
1 day and 22 hours ago
Fix T93117: Texture paint clone tool crash in certain situation

Caused by {rBaf162658e127}, so long standing bug.

When changing clone slots (report involved a quite complicated sequence
of selecting textures and undo -- but I think this could happen in more
situations) code checks for UV of new clone slot.
However, since above commit the slot and the clone slot were mixed up,
so in this case the responsible NULL check (for when no UV is assigned)
wasnt working.
Now correct this (NULL check the clone slot uv -- instead of the paint
slot UV).

note: not sure why low level CustomData functions actually dont do the
name NULL checks themselves (seems like callers are always responsible).

Maniphest Tasks: T93117

Differential Revision:
By: Miika HämäläinenLast update: Nov-07-2014 14:18 MiikaHweb | 2003-2021