Blender Git Commits

Blender Git "master" branch commits.

49 minutes ago
Geometry Nodes: Initial socket visualization for fields.

This implements the update logic for the vizualization of which
sockets pass data or constants directly, and which pass functions.
The socket shapes may still have to be updated. That should be
done separately, because it might be a bit more involved, because
socket shapes are currently linked to keyframe shapes. Currently
the circle and diamond shapes are used with the following meanings:

- Input Sockets:
- Circle: Required to be a single value.
- Diamond: This input supports fields.
- Output Sockets:
- Circle: This output is a single value.
- Diamond: This output may be a field.

Connecting a field to a circle input socket is an error, since a
field cannot be converted to a single value. If the socket shape
is a diamond with a dot in the middle, it means it is currently
a single value, but could be a field.

In addition to socket shapes, the intention is to draw node links
differently based on the field status. However, the exact method for
conveying that isn't decided yet.

Differential Revision:
Revision c1b925f by Hans Goudey
50 minutes ago
Fix build error caused by typo
2 hours 25 min ago
Fix T91638: image editor Open Cached Render not loading some passes

Previously this was only loading built-in render passes. Now instead of trying
to load the scene render passes, load whatever passes exist in the cache file.
2 hours 37 min ago
Fix: Build issue with MSVC

header for std::function was not included

reported/fixed by Charlie on chat
2 hours 59 min ago
Paint: prevent RenderResults and Viewers where unappropriate

Using a RenderResult (or a Viewer) was never really working (think you
cant get a real ImBuff from these) -- cannot use it as a clone, stencil
or canvas [Single Image paint texture slot].

In the case of using it as a 2D paint clone image this would also crash
[due to the Image Editor drawing refactor in 2.91].

Now [in the spirit of T73182 / D11179], prevent using these where
unappropriate by using rna pointer polling functions.

Also add a security check for the 2D paint clone image crash in case a
stencil ImBuff cannot be provided for some reason, but generally old
files are now patched in do_versions_after_linking_300 (thx @brecht!).

Fixes T91625.

Maniphest Tasks: T91625

Differential Revision:
Revision b8a30c7 by Julian Eisel
3 hours 31 min ago
Cleanup: Use const in previously committed function
Revision 323fd80 by Julian Eisel
3 hours 37 min ago
UI: Tree-View API for easy creation of tree UIs

This follows three main targets:

* Make creation of new tree UIs easy.
* Groundwork to generalize tree UIs (so e.g. Outliner, animation
channels, asset catalogs and spreadsheet data-sets don't have to
re-implement basic tree UI code) or even other data-view UIs.
* Better separate data and UI state. E.g. with this, tree-item selection
or the open/collapsed state can be stored on the UI level, rather than
in data. (Asset Catalogs need this, storing UI state info in them is
not an option.)

In addition, the design should be well testable and could even be
exposed to Python.

Note that things will likely change in master still. E.g. the actually
resulting UI isn't very nice visually yet.

The design is documented here:

Differential Revision:
Revision eb0eb54 by Hans Goudey
4 hours 29 min ago
Fix D12533: Simplify curve object to mesh conversion

This patch simplifies the curve object to mesh conversion
used by the object convert operator and exporters.

The existing code had a convoluted model of ownership, and did quite
a bit of unnecessary work. It also assumed that curve objects always
evaluated to a mesh, which is not the case anymore.

Now the code checks if the object it receives is evaluated. If so,
it can simply return a copy of the evaluated mesh (or convert the
evaluated curve wire edges to a mesh if there was no evaluated mesh).
If the object isn't evaluated, it uses a temporary copy of the object
with modifiers removed to create the mesh in the same way.

This follows up on the recent changes to curve evaluation,
namely that the result is always either a mesh or a wire curve.

Differential Revision:
4 hours 38 min ago
Cycles: improve Auto Tile option description

Ref T91645
4 hours 38 min ago
Fix T91626: Cycles sss behind fully transparent object renders differently
4 hours 44 min ago
Cleanup: UUID, fix clang-tidy warnings

Use explicit `uint32_t` instead of `uint`, add a missing end-of-namespace
comment, and change `auto` to `const auto *`.

No functional changes.
4 hours 44 min ago
bUUID: make it explicit the default constructor produces the nil value

The implicit default constructor zeroes all plain data fields, and now
this behaviour is explicit & tested for in a unit test.
5 hours 11 min ago
Geometry Nodes: simplify looping over attributes in geometry set

This adds three new methods:
* `InstancesComponent::foreach_reference_as_geometry(...)`
* `GeometrySet::attribute_foreach(...)`
* `GeometrySet::gather_attributes_for_propagation(...)`

The goal is that these iteration primitives can be used in places
where we use more specialized iterators currently.

Differential Revision:
5 hours 11 min ago
Geometry Nodes: remove old method to iterate over attributes

The previous commit added a new method to the same in a better way.
5 hours 13 min ago
Cleanup: asset catalogs, correct assertion message

There is no such thing as a "relative path" when it comes to asset catalog
paths (they're always absolute).

No functional changes.
5 hours 13 min ago
Cleanup: bUUID, document the constructors

No functional changes.
5 hours 13 min ago
UUID: place C++ code in correct namespace

Put the `bUUID` class in the `blender` namespace, instead of the
`blender::bke` namespace.

As a result, some C++ code now correctly uses the C++ class, where
previously it would use the C struct and use implicit casting where
necessary. As a result, support for initializer lists had to be
explicitly coded and in another place an explicit `::bUUID` was
necessary to avoid ambiguity.
5 hours 13 min ago
UUID: add `!=` operator for comparing UUIDs

Make it possible to unit test with `EXPECT_NE(uuid1, uuid2)`.
5 hours 23 min ago
Fix Cycles compiler warning on GCC 11

For shadow rays there are no closures, leave out the closure merging code
there to avoid warnings about accessing closure memory that does not exist.
5 hours 23 min ago
Fix T91641: crash rendering with 16k environment map in Cycles

Protect against integer overflow.
By: Miika HämäläinenLast update: Nov-07-2014 14:18 MiikaHweb | 2003-2021