Blender Git Commits

Blender Git "master" branch commits.

Page: 347 / 5574

March 16, 2021, 14:03 (GMT)
Cleanup: Modernize iter.
March 16, 2021, 14:03 (GMT)
Cleanup: Modernize iterators.
March 16, 2021, 14:03 (GMT)
Cleanup: Replace std::vector with blender::Vector.
March 16, 2021, 14:03 (GMT)
Cleanup: replace std::map with blender::Map.
March 16, 2021, 13:10 (GMT)
Fix T86124: Self-hosting external libraries packages

Allow downloading of source packages of Blender's dependencies, so that
it's easier to provide a "full source archive" that contains the blender
source + all dependencies archives. A `make` command for this will be
introduced soon.

This changes the deps builder slightly to be more flexible with the
origin of our source packages.

To support this a new CMake variable has been added called `PACKAGE_DIR`
where all sources archives will be stored.

default: a directory called `packages` in the build folder.

alternative-default: if a directory called `packages` exists in the
blender source folder that will be used. This is to support the "full
source archive" use case.

The download phase have been moved from the build phase to the configure
phase. Configure will download all sources validate the hashes while
downloading.

All `[depname].cmake` files have been changed to take a local
`file://[path_to_local_tarball]` path rather than a remote URI.

A second requirement was that there needed to be an option to grab the
sources from the blender SVN mirror rather than upstream. For this an
option has been added PACKAGE_USE_UPSTREAM_SOURCES (default ON). The
exact location in SVN still needs to be worked out, I tested with my
local webserver and codewise it checks out. The path that is in there
currently will not work (given there is no mirror there yet).

To build this mirror our local package caches can be used.

Reviewed By: lazydodo

Differential Revision: https://developer.blender.org/D10598
March 16, 2021, 12:10 (GMT)
Fix T86168: Add primitive Grid. Wrong number of subdivisions

Changes to increase subdivision by one along both axis (X and Y)

For example with x_segment = 3 and y_segment = 3.
There should be 16 vertices ((3 + 1) * (3 + 1)) for correct
number of subdivisions. Currently they are 3 * 3 = 9 vertices.

Ref D10699
March 16, 2021, 09:12 (GMT)
Fix: read cryptomatte manifests when images aren't loaded yet.

A check was preventing the actual image to load and was therefore not
parsed.
March 16, 2021, 09:12 (GMT)
Fix: Cryptomatte load corrupt manifests.

Seems like one of the example files on the cryptomatte github is
malformed and blender crashes when loading that file. This change will
try to load as much as possible from the manifest so it can still be
used.

This has also been reported to cryptomatte project.
March 16, 2021, 08:30 (GMT)
Fix T86561: Edit-mode crash with multiple objects sharing a mesh

Use a for loop that always begins with the active object,
instead of moving the active object in the array,
which failed when it's data already being handled.

While the existing logic could have been fixed,
it's simpler to change the loop order.
March 16, 2021, 06:43 (GMT)
Compositor: Redesign Cryptomatte node for better usability

In the current implementation, cryptomatte passes are connected to the node
and elements are picked by using the eyedropper tool on a special pick channel.

This design has two disadvantages - both connecting all passes individually
and always having to switch to the picker channel are tedious.

With the new design, the user selects the RenderLayer or Image from which the
Cryptomatte layers are directly loaded (the type of pass is determined by an
enum). This allows the node to automatically detect all relevant passes.

Then, when using the eyedropper tool, the operator looks up the selected
coordinates from the picked Image, Node backdrop or Clip and reads the picked
object directly from the Renderlayer/Image, therefore allowing to pick in any
context (e.g. by clicking on the Combined pass in the Image Viewer). The
sampled color is looked up in the metadata and the actual name is stored
in the cryptomatte node. This also allows to remove a hash by just removing
the name from the matte id.

Technically there is some loss of flexibility because the Cryptomatte pass
inputs can no longer be connected to other nodes, but since any compositing
done on them is likely to break the Cryptomatte system anyways, this isn't
really a concern in practise.

In the future, this would also allow to automatically translate values to names
by looking up the value in the associated metadata of the input, or to get a
better visualization of overlapping areas in the Pick output since we could
blend colors now that the output doesn't have to contain the exact value.

Idea + Original patch: Lucas Stockner
Reviewed By: Brecht van Lommel

Differential Revision: https://developer.blender.org/D3959
March 16, 2021, 06:34 (GMT)
Cleanup: use doxy sections for 'bpy.props' module
March 16, 2021, 06:22 (GMT)
Cleanup: use _fn suffix in bpy.props
March 16, 2021, 04:18 (GMT)
Revert removal of lambda usage for Python RNA callbacks

This reverts commits
- 476be3746e85b4891189c8d480501905b9400c66
- 8d50a3e19e025ef470132e7edadd7b180db833f5
- 08dbc4f996e4e95f3ab64f7bb3e1193700c585f5 (partially).
March 16, 2021, 04:17 (GMT)
Fix T86332: Error using lambda in annotations in Python 3.10

Callbacks used in `bpy.props` didn't hold a references to the functions
they used.

While this has been the case since early 2.5x it didn't cause any
problems as long as the class held a reference.

With Python 3.10 or when using `from __future__ import annotations`,
the annotations are no longer owned by the class once evaluated.

Resolve this by holding a reference in the module, which now supports
traverse & clear callbacks so the objects are visible to Python's
garbage collector.

Also refactor storage of Python data, moving from an array into a struct.
March 15, 2021, 19:47 (GMT)
Fix T86121: Cycles Attribute returning wrong results with OSL

Fix uninitialized variable in the OSL shader.
March 15, 2021, 19:46 (GMT)
Fix (apparently harmless) Cycles asan warnings
March 15, 2021, 17:01 (GMT)
Cycles: optimize ensure_valid_reflection(), reduces render time by about 1%

This is an implementation that is about 1.5-2.1 times faster. It gives a result
that is on average 6� different from the old implementation. The difference is
because normals (Ng, N, N') are not selected to be coplanar, but instead
reflection R is lifted the least amount and the N' is computed as a bisector.

Differential Revision: https://developer.blender.org/D10084
Revision fbe0165 by Mikhail Matrosov / Brecht Van Lommel
March 15, 2021, 16:49 (GMT)
Fix T56925: Cycles banding artifacts in dense volumes

Offset the starting point of segments by a random amount to avoid the bounding
box shape affecting the result and creating artifacts.

Differential Revision: https://developer.blender.org/D10576
March 15, 2021, 15:47 (GMT)
Fix Cycles rendering crash on OpenBSD

Static initialization order was not guaranteed to be correct for node base
types. Now wrap all initialization in accessor functions to ensure the order
is correct.

Did not cause any known bug on Linux/macOS/Windows, but showed up on this
platform.
March 15, 2021, 15:36 (GMT)
Geometry Nodes: Support drag & drop object to create Object Info, Collection Info and Sample Texture nodes

See: {T86296}

Reviewed By: JacquesLucke

Differential Revision: https://developer.blender.org/D10648
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021