Commit Graph

120533 Commits

Author SHA1 Message Date
Sean Kim
1eadfb1fbf Fix: UnifiedPaintSetting converting values incorrectly
Mistake in 6a03e8249d

Pull Request: https://projects.blender.org/blender/blender/pulls/139905
2025-06-06 01:16:53 +02:00
Harley Acheson
864afd76a7 UI: Top Bar Tabs as Pills
Show Top Bar Workspace items as pills (rounded on all sides) rather
than tabs (connected to region edge). This change also raises them
slightly to vertically align with other content, and adds a vertical
bar to separate the sections.

Pull Request: https://projects.blender.org/blender/blender/pulls/137070
2025-06-05 20:51:56 +02:00
Brecht Van Lommel
117a12cc0a Merge branch 'blender-v4.5-release' 2025-06-05 20:37:59 +02:00
Brecht Van Lommel
5905a1309a Fix #139828: Proportional edit connected only fails with some topology
For an initial single selected edge, adjacent edges were not always added
to the queue if there is no face to propagate the distance across.

Pull Request: https://projects.blender.org/blender/blender/pulls/139889
2025-06-05 20:36:31 +02:00
Julian Eisel
37b534967b Fix #137120: Asset catalogs overwitten by pre-existing ones on file save
Main issue was that the handling of catalogs for on-disk libraries
relies on an in memory version of a asset catalog definition file. This
wasn't present for the runtime current file library storage. We can
actually construct this quite easily when converting it from a runtime
to a on-disk library.

Pull Request: https://projects.blender.org/blender/blender/pulls/139881
2025-06-05 19:43:24 +02:00
Jacques Lucke
513c0494ba Fix #118207: avoid floating point calculations when computing random integer
This changes the way random integers are computed so that there is no
intermediate conversion to float which looses accuracy.

This change breaks compatibility because it changes the generated random
numbers. Therefore this is done in Blender 5.0.

Performance seems to be about ~6% better than before.

Pull Request: https://projects.blender.org/blender/blender/pulls/118795
2025-06-05 17:52:23 +02:00
Christoph Lendenfeld
cae8ac4374 Merge branch 'blender-v4.5-release' 2025-06-05 17:35:36 +02:00
Christoph Lendenfeld
5e5cf21944 Fix #139645: Incorrect preview rendering for screenshot previews
When taking screenshots above a certain size with the
recently introduced screenshot feature, it rendered incorrectly
when the backend was set to OpenGL. (Vulkan was fine)

The issue was that the image was not downscaled to 256
which seems to be the max supported size
for preview renders (`PREVIEW_RENDER_LARGE_HEIGHT`).
Scaling down the image resolves that issue.

Pull Request: https://projects.blender.org/blender/blender/pulls/139879
2025-06-05 17:27:02 +02:00
Mohamed El Shorbagy
9dd02f355d Cleanup: Assert normalized first before performing any operation
Pull Request: https://projects.blender.org/blender/blender/pulls/139408
2025-06-05 15:56:10 +02:00
Thomas Dinges
b92d926c03 Cleanup: Make format 2025-06-05 14:54:26 +02:00
Bastien Montagne
1502f14a04 Add new versioning source file template.
The goal is to help creating this new versioning file, since we now
create a new one for every release cycle.

Pull Request: https://projects.blender.org/blender/blender/pulls/139832
2025-06-05 14:29:18 +02:00
Jeroen Bakker
d49160091a Merge branch 'blender-v4.5-release' 2025-06-05 14:12:11 +02:00
Jeroen Bakker
3a16f3b45f Fix #137909: Vulkan: Recover from allocation errors
When buffers/images are allocated that use larger limits than supported
by the GPU blender would crash. This PR adds some safety mechanism to
allow Blender to recover from allocation errors.

This has been tested on NVIDIA drivers.

Pull Request: https://projects.blender.org/blender/blender/pulls/139876
2025-06-05 14:11:37 +02:00
Campbell Barton
9a79ed5fb4 Merge branch 'blender-v4.5-release' 2025-06-05 21:31:39 +10:00
Campbell Barton
0043a5e25c Merge branch 'blender-v4.5-release' 2025-06-05 21:31:35 +10:00
Kamil Galik
64696cc699 NDOF: simplify the UI and preferences
- Navigation modes has been redefined a bit and introduced in a form of
  an enum so that new ones can me implemented in the future.
  Additionally switching between modes shouldn't require any additional
  configurations like inverting all the axes.
  Currently there are only 2 modes implemented,
  but 2 more are planned and will be proposed in follow-up PRs.
  Implemented modes are:

  - Object: works like "Orbit" option.
    but has all axes implicitly inverted
  - Fly: works the same as "Free".

- "Turntable" option has been turned into "Lock Horizon".
  This single option works for both normal navigation and Fly/Walk
  modes now.
- Pan and Rotation axes inversion has been removed from default
  configuration.
- UI has been simplified following the design from #136880.
- Zoom Invert has been removed since it looks like a duplication of
  `NDOF_PANZ_INVERT`.

Ref !139343
2025-06-05 21:29:53 +10:00
Clément Foucault
b89c36f0e7 EEVEE: Split static shaders in different compilation batches
This allow for more granular requests reducing the engine
startup time in case sub-process compilation is not enabled
(when it is enabled, gains are not substantial).
This also makes engine startup less blocking.

The batches are only requested if needed.
Some of the batches can only be requested after object sync.
Given we don't have a priority system for the shader compilation
queue, the engine shader ends up compiling after the scene
ones.

The remaining blocking is the texture loading and geometry loading.
The world compilation is still blocking in this patch to avoid making it
more complex. But this can be another optimization we can do later on.

See PR for performance numbers.

Pull Request: https://projects.blender.org/blender/blender/pulls/139454
2025-06-05 12:31:08 +02:00
Jeroen Bakker
7cac06a994 Fix #139726: EEVEE: HiZ unneeded filtering
This PR will remove the filtering when gathering texels for HiZ. The
algorithm that we follow doesn't use it, but had issues when
implementing using textureGather where he mentioned that he needed to
enable filtering.

```
I was experimenting with using texture gather lookups to reduce
the number of texture fetches from 4-to-7 fetches per fragment
down to 1-to-3 fetches per fragment (see the extension
ARB_texture_gather) it seems that texture gather works only if
the image is linearly sampled and to avoid the additional burden
involved by switching filtering state during rendering I stuck
to simple texture lookups as using texture gather lookups did not
show any visible effect on the construction time of the Hi-Z map.
```
https://www.rastergrid.com/blog/2010/10/hierarchical-z-map-based-occlusion-culling/

After testing we got identical results when turning off filtering.

Turning off filtering allows supporting devices that don't support
linear filtering on depth stencil texture (WoA) using the Vulkan
backend.

Pull Request: https://projects.blender.org/blender/blender/pulls/139868
2025-06-05 12:29:36 +02:00
Jeroen Bakker
4a1078b3de Fix #139726: EEVEE: HiZ unneeded filtering
This PR will remove the filtering when gathering texels for HiZ. The
algorithm that we follow doesn't use it, but had issues when
implementing using textureGather where he mentioned that he needed to
enable filtering.

```
I was experimenting with using texture gather lookups to reduce
the number of texture fetches from 4-to-7 fetches per fragment
down to 1-to-3 fetches per fragment (see the extension
ARB_texture_gather) it seems that texture gather works only if
the image is linearly sampled and to avoid the additional burden
involved by switching filtering state during rendering I stuck
to simple texture lookups as using texture gather lookups did not
show any visible effect on the construction time of the Hi-Z map.
```
https://www.rastergrid.com/blog/2010/10/hierarchical-z-map-based-occlusion-culling/

After testing we got identical results when turning off filtering.

Turning off filtering allows supporting devices that don't support
linear filtering on depth stencil texture (WoA) using the Vulkan
backend.

Pull Request: https://projects.blender.org/blender/blender/pulls/139868
2025-06-05 12:28:45 +02:00
Pratik Borhade
fd78fa6094 Merge branch 'blender-v4.5-release' 2025-06-05 15:27:29 +05:30
Pratik Borhade
afa4eaa96c Fix #137942: Grease Pencil: Make layer operators non-editable for linked data
For linked grease pencil data, layer operators are accessible right
now. Grey out them in UI by adjusting poll functions. Also disabled
the individual layer row of tree-view.`

See images in PR description

Pull Request: https://projects.blender.org/blender/blender/pulls/137946
2025-06-05 11:55:38 +02:00
Falk David
a4c91939e7 Fix: Geometry Nodes: Unnecessary "Curve to Mesh" scale input versioning
The versioning code for the new `Scale` input (a92b68939a)
always added new versioning nodes connected to the `Scale` input to ensure
that the node behaves as before.

But these versioning nodes are only necessary when a profile curve is connected.
Otherwise, they don't have any effect at all, since the node just outputs
a wire mesh in this case.

This skips adding the versioning nodes in case the profile socket
is unused. The default scale value will be 1.

Pull Request: https://projects.blender.org/blender/blender/pulls/138968
2025-06-05 11:10:02 +02:00
Campbell Barton
d0aca47f36 Cleanup: correct misleading names 2025-06-05 17:40:59 +10:00
Campbell Barton
30fea3e44e Cleanup: const-correctness for array-store references 2025-06-05 17:40:34 +10:00
Campbell Barton
96b7504a06 Merge branch 'blender-v4.5-release' 2025-06-05 17:35:20 +10:00
Campbell Barton
9d3974f37a Merge branch 'blender-v4.5-release' 2025-06-05 17:35:13 +10:00
Campbell Barton
0b94df6b2a Docs: use single quotes instead of back-ticks
Minor tweaks so text is extracted into the user manual properly.
2025-06-05 17:32:42 +10:00
Campbell Barton
2f60e37936 Fix command line help text mixing up "-a" arguments
The argument `-a` is used twice (render animation & animation playback).

Parsing logic works since their handled at different passes however
printing help text could return either since passes aren't used
for matching.

Workaround the problem using a deterministic lookup when printing
help text which that skips arguments that have already been handled.
2025-06-05 17:27:29 +10:00
Campbell Barton
c88d7194fc Merge branch 'blender-v4.5-release' 2025-06-05 15:41:56 +10:00
Campbell Barton
3abb247e49 Merge branch 'blender-v4.5-release' 2025-06-05 15:41:51 +10:00
Campbell Barton
6396859466 Merge branch 'blender-v4.5-release' 2025-06-05 15:41:43 +10:00
Campbell Barton
628f1e08d0 Fix edge dissolve leaving visible edges connected to hidden vertices
Visible edges should always have both vertices visible.
When dissolving, hide any edges which become connected to hidden
vertices.
2025-06-05 05:33:51 +00:00
Jason C. Wenger
e418f7b1f1 Modeling: add an angle threshold that affects vertex dissolve
When dissolving an edge merges faces, use an angle threshold before
dissolving vertices from the face which have become chains as reult
of the merge (connected to 2 edges).

Also fix edge-flag handling when dissolving multiple edges
from a chain into a single edge, previously flags from the
resulting edge was effectively random.
Now flags from all edges are merged.

Resolves #100184.

Ref !134017
2025-06-05 05:33:49 +00:00
илья _
f140926186 Core: lock stack trace printing
If multiple threads fail at the same time (usually on the same assert), the
stack trace print can be all mixed up. This patch adds a lock to the stack trace
printing, so that they are printed on after the other.

Pull Request: https://projects.blender.org/blender/blender/pulls/139237
2025-06-05 07:32:22 +02:00
Campbell Barton
2d86699209 PyDoc: improve BMesh operator docs
- Place doc-strings before arguments (avoid over long lines).
- Enable clang-format for BMesh operator definitions.
- Remove invalid comments (likely left in from copy-paste).
- Use double back-ticks for RST.
- Use full sentences.

No functional changes.
2025-06-05 15:31:36 +10:00
Guillermo Venegas
25873ccf53 Refactor: UI: Replace uiLayoutSetEmboss and uiLayoutGetEmboss with uiLayout methods
This converts `uiLayoutSetEmboss` and `uiLayoutGetEmboss` function APIs
to objects methods following recent `uiLayout` refactors.
Part of: #117604

Pull Request: https://projects.blender.org/blender/blender/pulls/139811
2025-06-05 06:00:02 +02:00
Harley Acheson
8daea1d0b2 Merge branch 'blender-v4.5-release' 2025-06-04 18:34:46 -07:00
Harley Acheson
ccb0dc50fb Fix #139780: Always Enforce Minimum Area Heights on File Load
We attempt to enforce a minimum area height so that they cannot be made
smaller than header height. This works correctly as we drag resize
areas but not when loading blend files. We skip doing so if resizing
from smaller to a bigger vertical size. This PR just makes it so we
enforce minimum size always.

Pull Request: https://projects.blender.org/blender/blender/pulls/139804
2025-06-05 03:31:56 +02:00
Sean Kim
582c7d94b8 Paint: Scale brush size in preparation for planned 5.0 changes
This commit, in conjunction with !139561, is used to ensure consistent
values for the brush size while we transition it from representing
radius to diameter.

Related to #134204

Pull Request: https://projects.blender.org/blender/blender/pulls/139813
2025-06-05 00:46:10 +02:00
Sean Kim
2bbc9e73fc Merge branch 'blender-v4.5-release' 2025-06-04 15:45:32 -07:00
Sean Kim
6a03e8249d Paint: Add forward compatibility code for brush size
In 5.0, we plan to change the brush size from representing radius to
diameter. This means that for 5.0 files loaded in 4.5, we need to
scale the stored value when reading the relevant brush fields.

Related to #134204

Pull Request: https://projects.blender.org/blender/blender/pulls/139561
2025-06-05 00:44:43 +02:00
Sean Kim
653601a416 Merge branch 'blender-v4.5-release' 2025-06-04 15:02:57 -07:00
Sean Kim
e906fe2738 Fix: UV Editor doesn't show UVs in non-edit modes
Introduced in 440c6c8b6f

Pull Request: https://projects.blender.org/blender/blender/pulls/139857
2025-06-05 00:02:03 +02:00
Hans Goudey
99736cc6ca Merge branch 'blender-v4.5-release' 2025-06-04 15:47:10 -04:00
Hans Goudey
c9bb7f0b23 Fix: Texture paint color jitter dereference of uninitialized optional
The value isn't created unless jitter is enabled, but it was always
retrieved for a function argument. The uninitialized memory wasn't read,
but it caused a crash in debug builds.

Pull Request: https://projects.blender.org/blender/blender/pulls/139854
2025-06-04 21:27:16 +02:00
Hans Goudey
178f1d6fc5 Merge branch 'blender-v4.5-release' 2025-06-04 14:44:22 -04:00
Laurynas Duburas
46bc894570 Fix: Curves: Custom knots in Curves and GP operators
Current strategy to deal with operators not supporting custom NURBS
knots is to fall back to calculated knots for curves of the custom mode
but with no `CurvesGeometry::custom_knots` allocated. Such curves are
the result of operators that copy only `Point` and `Curve` domains. This
way the problem is only postponed. It is not possible to add new custom
knot curves to such `CurvesGeometry` as custom knot offsets are
calculated all together and there is no way to distinguish between old
curves with lost knots and new ones. This is more a future problem.

The actual problem in `main` can be shown with an attached blend file
(see PR) by applying `Subdivide` to some points and then adding new
`Bezier` curve to the same object. This particular problem could be
addressed somewhere in `realize_instances.cc` but the actual problem
would persist.

This PR handles custom knots in all places where `BKE_defgroup_copy_list`
is iused, and where `bke::curves::copy_only_curve_domain` is called.
Here the assumption is made that only these places can copy custom knots
modes without copying custom knots. Depending on operator logic knots are
handled most often in one of two ways:
 - `bke::curves::nurbs::copy_custom_knots`:
   copies custom knots for all curves excluding `selection`. Knot modes
   for excluded curves are altered from the custom mode to calculated.
   This way only curves modified by the operator will loose custom knots.
 - `bke::curves::nurbs::update_custom_knot_modes;`
   alters all curves to calculated mode.

In some places (e.g. `reorder.cc`) it is possible to deal with knots
without side effects.

PR also adds `BLI_assert` in `load_curve_knots` function to check if
`CurvesGeometry::custom_knots` exists for custom mode curves. Thus
versioning code is needed addressing the issue in files in case such
already exists.
Pull Request: https://projects.blender.org/blender/blender/pulls/139554
2025-06-04 20:43:15 +02:00
Hans Goudey
d7ae9cbfeb Cleanup: Sculpt: Remove unused argument
Missing from baa2ae6a59
2025-06-04 13:47:18 -04:00
Sean Kim
baa2ae6a59 Sculpt: Remove dyntopo BMesh reordering
In certain cases, when a Mesh is generated from a BMesh as part of
Dyntopo sculpting, (e.g. when the data is invalidated when leaving
Dyntopo or Sculpt mode) the face and vert indices are compressed to
remove any gaps that may exist due to deletion of elements. This step is
redundant to perform prior to converting to a Mesh, as the process of
doing so already compresses the indices

To avoid doing extra work, this commit simply removes this conversion
and any associated helper methods.

Pull Request: https://projects.blender.org/blender/blender/pulls/139313
2025-06-04 18:19:08 +02:00
Hans Goudey
4ccf435058 Brush: Remove legacy icon replaced by asset preview image
This icon was useful before the brush assets change. Nowadays
the workflow is different, and users have had time to use the
asset preview instead.

Resolves #121365.

Pull Request: https://projects.blender.org/blender/blender/pulls/139844
2025-06-04 18:16:30 +02:00