Commit Graph

132505 Commits

Author SHA1 Message Date
Damien Picard fa77e9142d UI: fix and improve a few messages
- "can not" -> "cannot" in many places (ambiguous, also see
  Writing Style guide).
- "Bezier" -> "Bézier": proper spelling of the eponym.
- Tool keymaps: make "Uv" all caps.
- "FFMPEG" -> "FFmpeg" (official spelling)
- Use MULTIPLICATION SIGN U+00D7 instead of MULTIPLICATION X U+2715.
- "LClick" -> "LMB", "RClick" -> "RMB": this convention is used
  everywhere else.
- "Save rendered the image..." -> "Save the rendered image...": typo.
- "Preserve Current retiming": title case for property.
- Bend status message: punctuation.
- "... class used to define the panel" -> "header": copy-paste error.
- "... class used to define the menu" -> "asset": copy-paste error.
- "Lights user to display objects..." -> "Lights used...": typo.
- "-setaudio require one argument" -> "requires": typo.

Some issues reported by Joan Pujolar and Tamar Mebonia.

Pull Request: https://projects.blender.org/blender/blender/pulls/117856
2024-02-05 17:08:17 +01:00
Sergey Sharybin 4f0ec384ce Fix incorrect update tag handling in inactive depsgraphs
The dependency graph builder takes the original data-block's recalc
flags to tag IDs after the dependency graph has been built, while
the evaluation of the graph only re-sets tho recalc flag to 0 only
for active dependency graph. This could have caused an inconsistency
of the handled tags: for example, if a headless render modifies some
object's properties and then renders the scene multiple times without
re-creating dependency graph (using Eevee or having Persistent Data,
and rendering multiple view layers, for example).

This change makes it so the recalc flags from the original ID are
only considered by active dependency graph, of when an ID is first
evaluated within a non-active dependency graph. This is a bit of a
conservative change to avoid possible breakage. In theory it should
be possible to never consider original recalc flags for render, and,
eventually, also ignore it for the active graphs. This needs to be
with more care and, so follow safer approach for now.

In practice this change fixes an issue with missing particle hair
when rendering second view layer of rlayer_flags_01.blend with Eevee.

Pull Request: https://projects.blender.org/blender/blender/pulls/117854
2024-02-05 16:59:14 +01:00
Julian Eisel 212d736842 Fix assert when setting default collapsed state of items
Would assert that the reconstruction phase is not completed. In this
case collapsing is modified as part of the construction, so the assert
is wrong. Access the collapsed state directly without using the getter
that does the assert check.
2024-02-05 16:51:32 +01:00
Bastien Montagne ec5594ec7f install_linux_packages: update OIIO, OSL, LLVM and USD library versions.
NOTE: Blender does not seem to build with older OpenImageIO versions
(2.4.x and before) anymore. Since this library is now mandatory, it
means that Blender cannot be built without using the pre-compiled libs
on most Debian system, currently.

Ref. #113157.
2024-02-05 16:47:08 +01:00
Bastien Montagne fd0d84095d I18N: Fix missing Danish language.
We had inherited Danish translation file in the repository from over a
decade ago, but it was never since then an active translation, and
therefore was never added back to the current list of known languages.

Since the file exists now and is exposed in Weblate
(translate.blender.org), language entry should be created in our
settings, such that e.g. PO files do get updated with all the others!
2024-02-05 16:47:08 +01:00
Hans Goudey cfb4e5a25d Cleanup: Store asset shelf types in vector of unique_ptr
This avoids the need for manual memory management/raw pointers,
improves const correctness, improves type safety, simplifies iteration,
and simplifies the process of registering a new asset shelf type.

Pull Request: https://projects.blender.org/blender/blender/pulls/117770
2024-02-05 16:23:57 +01:00
Jacques Lucke bb915ae9bd BLI: improve finding elements in IndexMask
Previously, it was only possible to `find` a specific index in an `IndexMask`.
Now it's also possible to find the closest larger/smaller index if an exact
match doesn't exist. This could be used for slicing the mask so that it only
contains certain indices.

Pull Request: https://projects.blender.org/blender/blender/pulls/117852
2024-02-05 16:07:53 +01:00
Nika Kutsniashvili ff3f396103 UI: Add missing data-block icons in Outliner
Add data-block icons to Outliner's "Blend File" mode for:

* Color Palette
* Particles System
*  Vector Font

Pull Request: https://projects.blender.org/blender/blender/pulls/117850
2024-02-05 15:26:11 +01:00
Lukas Tönne 76e877eaf9 Curves: fix incorrect brackets in assert.
The conditional should be a single expression.
2024-02-05 15:20:34 +01:00
Falk David b37ee403b2 GPv3: Move to layer: Add popup for entering new layer name
In the `move_to_layer` operator, add a popup when moving to a new layer
to enter the new layers name.

This is consistent with GPv2.
2024-02-05 14:52:54 +01:00
Lukas Tönne d7127dea02 Fix crashes when connecting cyclic grease pencil curves
Curves draw buffer updates and operations like resampling access the
evaluated lengths cache of curves. However, when the curve has only one
point the evaluated lengths will be empty. This is not a problem for
open curves, because they skip calculation of the last point, but cyclic
curves expect to have as many length entries as there are points.

This crashes in certain cases:
- Grease Pencil v3 edit mode "Toggle Cyclic" operator
- Geometry nodes resampling of cyclic, single-vertex curves

Checking for the single-point case when building draw buffers handles
these corner cases.

Fixes #117833
Fixes #117838

Pull Request: https://projects.blender.org/blender/blender/pulls/117842
2024-02-05 14:47:05 +01:00
Nika Kutsniashvili 2274f58ef2 UI: Remove empty space in Custom Properties panel
Remove empty space in Custom Properties panel, and align buttons in a row.

Pull Request: https://projects.blender.org/blender/blender/pulls/115913
2024-02-05 14:34:14 +01:00
Michael Kowalski ecbf3385c5 USD: basic support for on_import USD hooks
Added support for defining an on_import() function in
bpy.types.USDHook subclasses.  If on_import() is defined
on a given USD hook, it will be invoked in import_endjob().

The implementation closely follows the existing design of
export hooks.  USDHook.on_import() takes as an argument
an instance of an internally defined USDSceneImportContext
class which provides an accessor to the USD stage.

Also updated the USDHook documentation with an example
on_import() callback implementation.

Pull Request: https://projects.blender.org/blender/blender/pulls/117822
2024-02-05 14:26:02 +01:00
Alaska a3183fb95f Fix #117771: Incorrect Cycles texture position on emissive triangles
Pull Request: https://projects.blender.org/blender/blender/pulls/117801
2024-02-05 13:56:18 +01:00
Nikita Sirgienko 6827400305 Build: Cycles: Backport a DPC++ fix for caching of GPU binaries
Since the addition of Meteor Lake binaries, prebuilt GPU binaries
are now stored as fatbinaries. When running on a platform for which
prebuilt binaries are lacking or considered incompatible, the DPC++
SYCL runtime caching logic failed storing the (re)compiled
compatible version. This patch to DPC++ SYCL runtime fixes it.

Pull Request: https://projects.blender.org/blender/blender/pulls/117844
2024-02-05 13:55:40 +01:00
Nikita Sirgienko cab974920f Cycles: Remove incorrect dead code for CUDA 32bit textures
Pull Request: https://projects.blender.org/blender/blender/pulls/117818
2024-02-05 13:53:51 +01:00
Falk David 42fa5fa27f Cleanup: GPv3: Use scoped defer to free allocated string 2024-02-05 13:52:20 +01:00
Lukas Tönne 83ac606088 Curves edit mode: Finish "cyclic" attribute after duplicating. 2024-02-05 13:48:33 +01:00
Brecht Van Lommel ab75440847 Fix: Missing owner ID in color ramp and sequencer metadata pointers
Found while refactoring for #117640.
2024-02-05 13:43:37 +01:00
Brecht Van Lommel c14e9fc95b Cleanup: Compiler warnings 2024-02-05 12:59:30 +01:00
Nika Kutsniashvili c4e077341e UI: VSE: Move Onion Skin properties inside Annotations panel
Make Onion Skin a sub-panel of Annotations, to match the rest of Blender.

Pull Request: https://projects.blender.org/blender/blender/pulls/116060
2024-02-05 12:41:16 +01:00
Jacques Lucke 1ce2ae3c1a LibOverride: don't compare PoseBone.is_in_ik_chain property
The is a derived property, so overriding it doesn't make sense.

I found this to cause a severe bottleneck when saving a file that creates
overrides for a large number of bones. In my test file this reduces the
save-time from 1200ms to 202ms.

Pull Request: https://projects.blender.org/blender/blender/pulls/117802
2024-02-05 12:40:38 +01:00
Pratik Borhade 0228994d6d GPv3: Isolate Layers
This ports the legacy operator to grease pencil v3.

Pull Request: https://projects.blender.org/blender/blender/pulls/117784
2024-02-05 12:30:24 +01:00
Pablo Delgado Krämer e5b7768830 MaterialX: Add remaining float/vector math operations
Ref #112864

Pull Request: https://projects.blender.org/blender/blender/pulls/117764
2024-02-05 12:28:22 +01:00
Brecht Van Lommel 3b1230d318 Cycles: Remove workaround for failing bake tests
This appear to no longer be needed, and this type of memory does not
work with OpenImageDenoise.

Ref #116124
2024-02-05 12:19:21 +01:00
Brecht Van Lommel 8fcc7aab46 Fix: Build error when not using unity build 2024-02-05 12:14:30 +01:00
Nika Kutsniashvili f2c8f31a3c UI: Add 'Channels' region toggle in animation editors
This way users can also assign shortcut to it or add it to quick favourites.

Pull Request: https://projects.blender.org/blender/blender/pulls/117837
2024-02-05 12:13:31 +01:00
Bastien Montagne 2ba4f9f10b I18N: updated UI translations from git/weblate repo (90f9b86ebe2e6b0). 2024-02-05 12:10:52 +01:00
Matias Mendiola dcc5725741 GPv3: Move to Layer
This PR adds the Move to Layer operator from GPv2.

Pull Request: https://projects.blender.org/blender/blender/pulls/117244
2024-02-05 12:02:51 +01:00
Pablo Delgado Krämer 6f0e27abad MaterialX: Enable blackbody and randomfloat nodes
These are supported now with MaterialX 1.38.8 in Blender 4.1.

Pull Request: https://projects.blender.org/blender/blender/pulls/117762
2024-02-05 11:42:22 +01:00
Pablo Delgado Krämer a669fd870e Fix: MaterialX export of less than math node slightly off
Pull Request: https://projects.blender.org/blender/blender/pulls/117763
2024-02-05 11:39:51 +01:00
Clément Foucault 77ef7d102b Fix: EEVEE-Next: Artifacts caused by volumes and Motion blur
There seems to be a driver bug on Linux + Mesa + AMD

The bug only appears in renderdoc if looking at the film pass
but not in the motion blur pass nor the volume pass.

Adding a clear event seems to fix the issue.
2024-02-05 11:18:22 +01:00
Aras Pranckevicius 4cf2d95bb5 Cleanup: more C++ constructs in VSE render.hh and friends
- enum class StripEarlyOut instead of raw integer defines
- SeqRenderState default initializer instead of seq_render_state_init
- Vector<Sequence*> instead of manually sized arrays of pointers
- some const to several function arguments

Pull Request: https://projects.blender.org/blender/blender/pulls/117829
2024-02-05 11:10:43 +01:00
Omar Emara 3d7e84f57d Compositor: Unify Bilateral Blur across CPU and GPU
This patch unifies the implementation of the Bilateral Blur node across
CPU and GPU. The difference is due to two things. First, the CPU code
had a bug where the upper limit of the blur window was not included in
the accumulation. Second, CPU ignored pixels outside of the image while
GPU clamped them to the nearest boundary pixel. The latter difference
was aligned with GPU until we eventually add an option to control
boundary handing.

A few utilities were added to the node operation and memory buffer
classes to do clamped pixel reading.

Pull Request: https://projects.blender.org/blender/blender/pulls/117751
2024-02-05 08:48:20 +01:00
Campbell Barton d73628a3cd UI: use consistent naming for an extensions "Remote" repository 2024-02-05 11:24:54 +11:00
Lukas Stockner b10507ab63 Fix #117586: Cycles: World Lightgroup not updated when creating/deleting LGs 2024-02-04 16:30:55 +01:00
Campbell Barton 80906eb02e Cleanup: various non-functional C++ changes 2024-02-04 23:42:18 +11:00
Jacques Lucke 47cf827049 Cleanup: add forward declaration header for IndexMask and VArray
This avoids duplicating the declaration in multiple places.
2024-02-04 11:55:45 +01:00
Pratik Borhade 3566a9e8de UI: Tooltip when bone collections are linked
Linked bone collections are disabled in b79419914a
Include 'Disabled' tooltip for `move and assign to collection`
operation when bcol are linked.
In poll functions all other cases are already handled and also not
possible to get the index of hovered collection so just include
`poll_msg_set` in the end.

Pull Request: https://projects.blender.org/blender/blender/pulls/117715
2024-02-04 07:01:05 +01:00
Campbell Barton faeab05395 UI: edit-source operator prints the location to the output again
This can be useful to open the location in other editors.
2024-02-04 15:16:48 +11:00
Campbell Barton 77b49e1373 Fix text editor exceptions showing twice in the console 2024-02-04 15:16:47 +11:00
Campbell Barton c2444131f4 Cleanup: quiet GCC undef warning 2024-02-04 15:16:46 +11:00
Lukas Stockner 8d7ecd0856 Cycles: Use high value for Transparent BSDF PDF
The transparent BSDF is singular, so MIS shouldn't be applied.

Fixes #117657.
2024-02-04 00:35:54 +01:00
Aras Pranckevicius 4b108959ba Cleanup: remove accidental include leftovers 2024-02-03 23:29:13 +02:00
Jacques Lucke 442429a97c BLI: support formatting StringRef with the fmt library
People were manually converting it to `std::string_view` in many places already.
It's easy enough to allow using `StringRef` directly by providing a `format_as` function.

Also see https://fmt.dev/latest/api.html#udt.

Pull Request: https://projects.blender.org/blender/blender/pulls/117788
2024-02-03 19:14:51 +01:00
Aras Pranckevicius f6276ec163 Fix: 2D tri/quad vs point intersection tests edge cases
isect_point_tri_v2 and isect_point_quad_v2 are handling tris/quads
in either clockwise or counter-clockwise vertex orderings. However,
for clockwise order it was considering points that lie on the edges
or vertices as "inside", whereas for counter-clockwise it was treating
them as "outside".

Visibly affected place is VSE: it has an optimization that checks
whether a fully opaque strip image fully covers the rendered area.
When the strip was scaled up to *exactly* cover the rendered area,
the check was failing since isect_point_quad_v2 was saying that a
point is outside the rect.

As far as I can tell, the functions have been "slightly wrong" in
this way for at least 15 years; harder to see through earlier
history in git.

Added a bunch of unit tests to cover this. Without the fix, "edge"
and "corner" cases against "cw" tri/quad were failing.

Performance (checked on clang15 on M1 Max):
- isect_point_tri_v2 is pretty much the same performance (assembly
  several instructions shorter),
- isect_point_quad_v2 is about three times *faster* (assembly 2x
  shorter), seemingly the compiler is able to use some SIMD now.

Pull Request: https://projects.blender.org/blender/blender/pulls/117786
2024-02-03 19:03:21 +01:00
Ray Molenkamp fc409e4388 Cleanup: CMake: Modernize extern_fmtlib dependencies
Pretty straightforward

- Remove any fmtlib paths from INC
- Add a dependency though LIB when missing

context: https://devtalk.blender.org/t/cmake-cleanup/30260

Pull Request: https://projects.blender.org/blender/blender/pulls/117787
2024-02-03 18:55:09 +01:00
Jacques Lucke 444e148976 Geometry Nodes: support baking volume geometry
This adds support for baking the volume component of a geometry. Previously,
volumes were just removed in the simulation and bake node.

On disk, each volume geometry is written to a separate `.vdb` file that is stored in
the bakes `blobs` directory and referenced from the corresponding meta `.json` file.

Technically, it would also be easy to write the volume data to the same `.blob`
files that we also write e.g. mesh attributes to. However, since `.vdb` is a well
known file format, it seems reasonable to just store it as a separate file. The
serialization code doesn't really care whether it's a separate file or embedded into
a bigger file, so this decision could be made at a higher level.

Just like with other geometry types, materials are preserved. Just note that when
using the written stand-alone .vdb files, materials are not preserved.

Currently, volume grids are not deduplicated on disk. This could be added in the
future if necessary.

Pull Request: https://projects.blender.org/blender/blender/pulls/117781
2024-02-03 18:13:34 +01:00
Jacques Lucke 82d9b384e4 Fix: crash when adding geometry socket to Bake node while it's baked 2024-02-03 11:54:14 +01:00
Jacques Lucke da99e62101 Geometry Nodes: avoid writing empty blob files when baking
This is achieved by only creating the file lazily when the first data is written.
2024-02-03 11:35:37 +01:00