Commit Graph

3574 Commits

Author SHA1 Message Date
Pablo Vazquez
228c1d3baf UI: Theme: Add missing properties to Light theme
New theme settings were added recently.
2025-06-12 14:37:24 +02:00
Clément Foucault
e16b6ac3da EEVEE: Add support for view layer overrides
This was a missing features in EEVEE for ages which
was in fact very easy to implement.

EEVEE implements the sample override like the default
`Use` value in Cycles. It always override the sample
count if not 0. Adding a new option for changing this
behavior just like Cycles can be done later while
at the same time making the option more understandable
and its value moved to the blender's DNA.

This PR moves the UI panel to the Blender side to
be shared between Cycles and EEVEE.

Pull Request: https://projects.blender.org/blender/blender/pulls/140219
2025-06-12 14:18:29 +02:00
Campbell Barton
dc83260f1a UV: split island select into a separate option, support for sync-select
Change island selection from being it's own selection mode,
along side vertex/edge & face modes, to a separate toggle.

This makes it possible to use sync-select without loosing functionality
as previously island selection didn't work when sync-select was enabled.
Now island selection supports sync-select although at the moment this
only works in face-select mode, when !138197 is merged this limitation
will be removed.

In practice this change is subtle, making it possible to toggle island
selection no matter which selection mode is currently active.

Details:

- The UI is mostly unchanged, this option is available
  in the same location in the header & menu as a toggle.
- The shortcut 4-key is kept, toggling instead of switching modes.
- Enabling island selection no longer isolates islands,
  it just acts on selection actions made after being enabled.
2025-06-12 07:09:46 +00:00
Pablo Vazquez
23fb5752ed UI: Theme: Add new Outline Selected property
Allow theming the outline of selected elements. This helps to make
active elements more prominent, and allows for flat theme combinations
not possible before.

Pull Request: https://projects.blender.org/blender/blender/pulls/139850
2025-06-11 23:20:50 +02:00
Jacques Lucke
4df037e582 Merge branch 'blender-v4.5-release' 2025-06-11 14:26:56 +02:00
Jacques Lucke
7b291de3c3 Fix #140193: error when deleting panel with subpanel as first item 2025-06-11 14:26:00 +02:00
Bastien Montagne
d7b6c584e1 Merge branch 'blender-v4.5-release' 2025-06-11 13:12:48 +02:00
Damien Picard
798f85a710 Fix #139838: UI: Improve languages list and labels
Edit the language list to make it simpler to scan.

- Display languages in a form "Language (Variant)", such as
  "English (US)" instead of "American English" and
  "Portuguese (Brazil)" instead of "Brazilian Portuguese".
  This allows alphabetical sorting by language first.
  This does not apply to endonyms (languages in their own language).
- Use a dash instead of parentheses to separate the endonyms.
- Deduplicate languages (Automatic, American English, British
  English), which all are in English and don't appear in another
  language.

- Remove language categories as headers. They are replaced with
  percentages in the language tooltips. The percentages are
  generated in utils_languages_menu.py and stored in
  locale/languages.

Co-authored-by: Bastien Montagne <bastien@blender.org>
Pull Request: https://projects.blender.org/blender/blender/pulls/140087
2025-06-11 13:11:40 +02:00
John Kiril Swenson
5283c408a1 Merge branch 'blender-v4.5-release' 2025-06-10 21:08:51 -05:00
John Kiril Swenson
82d20f6a22 Fix: VSE: Remove Playhead Snapping menu from Preview
The other snapping menu in the preview is specific to that view type,
so it doesn't really make sense to have a timeline-specific snap
mode listed here.

Pull Request: https://projects.blender.org/blender/blender/pulls/140171
2025-06-11 03:57:25 +02:00
Sean Kim
c463860a82 Merge branch 'blender-v4.5-release' 2025-06-10 16:34:41 -07:00
Sean Kim
ee67c098d9 Fix #110879: Multires relative subdivide navigation subdivides mesh
Prior to this commit, the `object.subdivision_set` would prevent
actually applying a subdivision to a multires modifier when the relative
option was set. This is commonly accessed via Alt-1 / Alt-2 or D / Shift
D in Sculpt mode.

However, when the multires modifier did not already exist, pressing
these keybinds would still create the modifier and further subdivide the
mesh.

To fix this, this commit adds a hidden property to the operator:
`ensure_modifier` to indicate if the keybind should create the modifier
or not.

Pull Request: https://projects.blender.org/blender/blender/pulls/130254
2025-06-11 01:34:08 +02:00
Sean Kim
8801af6042 Fix: 'By Active Tool' Filter shows no brushes in asset shelf
Introduced with ab3c129dd9

Pull Request: https://projects.blender.org/blender/blender/pulls/140148
2025-06-10 22:36:50 +02:00
Habib Gahbiche
bd61e69be5 Compositor: make compositor node trees reusable
This is part of the short term roadmap goal of simplifying the
compositor workflow
(see https://projects.blender.org/blender/blender/issues/134214).
The problem is that many users don't know how to get started with
compositing in Blender, even when they have used Blender for other
areas, e.g. modeling.

Note: although the solution makes compositor node trees reusable
accross blend files, this is a nice side effect and not the main goal
of the PR.

This PR implements a "New" button that creates a new compositing node
tree, and manages trees as IDs. This has following advantages:
- Consistent with other node editors and other parts of Blender,
therefore making it easier to getting started with compositing if users
are familiar with shading or geometry nodes
- Give users the ability to reuse the compositing node tree by linking
or appending it.

Note: The parameter "Use Nodes" is still present in this PR, but will
be removed (in a backward compatible way) in a follow up PR.

Pull Request: https://projects.blender.org/blender/blender/pulls/135223
2025-06-10 17:46:55 +02:00
Hans Goudey
40198c1469 Merge branch 'blender-v4.5-release' 2025-06-10 10:09:47 -04:00
quackarooni
633463c586 Fix: Nodes: Add menu entries not in alphabetical order
It is generally expected that items within the same section in the Node
Add menu appear in alphabetical order.

However, certain handful of places in the different node editor menus
don't seem to follow this convention. This patch simply re-arranges the
items in some places to follow alphabetical order.

Pull Request: https://projects.blender.org/blender/blender/pulls/140070
2025-06-10 15:49:31 +02:00
Jacques Lucke
f62fde234f Merge branch 'blender-v4.5-release' 2025-06-10 09:51:51 +02:00
Guillermo Venegas
23ff021d58 Fix #139214: Wrong FBX file imported when dropping with a preset
Exclude operator paths from the preset.

Ref !139309
2025-06-10 07:34:10 +00:00
Campbell Barton
6ed8e1dd96 Fix wm.operator_presets_cleanup failing to exclude collections
Only the collection clearing was removed, adding an item
and assigning values to it was kept - breaking the preset.

Detect collections and removed all lines which add & manipulate items.

Based on the fix from !139309 with fewer changes.

Also include FBX operators when cleaning up presets.

Co-authored-by: Guillermo Venegas <guillermovcra@gmail.com>
2025-06-10 17:32:31 +10:00
Campbell Barton
2e8793b38f WM: prevent the same value being written multiple times in a preset
Presets would write a property multiple times in the case both the class
and it's parent defined a property.

While not a bug, it looks like an error. Only write values once.
2025-06-10 17:32:31 +10:00
Campbell Barton
608f017a41 Cleanup: minor changes to spreadsheet header filtering
- Use a private, static method.
- Simplify the check for an empty sequence.
- Remove redundant "None" check.
- Use a "match" statement for the object type check.
2025-06-10 11:29:24 +10:00
Falk David
f7a0003452 Grease Pencil: Motion Blur support
This adds motion blur support for Grease Pencil.

We follow the same principle form EEVEE and use the existing
`antialiasing_accumulate` (SSAA) function to accumulate the
frames in range of the motion blur over time.

There is a new `motion_blur_steps` setting in the Grease
Pencil render settings to control the accuracy of the motion
blur. This will increase the render time.

Limitations:
* When Grease Pencil is composited into the scene, we only do
  it for one the current frame and don't take the motion blur into
  account. This will lead to hard edges currently.
* There is no viewport motion blur. This would need an entirely
  new technique that can be computed in real-time.

Pull Request: https://projects.blender.org/blender/blender/pulls/139840
2025-06-09 15:44:53 +02:00
Falk David
d4c143957f Merge branch 'blender-v4.5-release' 2025-06-09 14:16:12 +02:00
Campbell Barton
bcbdd4adb0 Fix #140034: Unhandled Python exception in the spreadsheet UI
Ref !140035
2025-06-09 21:21:22 +10:00
Clément Foucault
1c47e31367 GPU: Enable GL multithreaded compilation by default
This allows to reduce the waiting time caused by
shader compilation on some GPU-driver combo.

A new settings in the User Preferences make it
possible to override the default amount of worker
threads and optionally use subprocesses.

We still use only one worker thread in cases where
there is no benefit with adding more workers
(like AMD pro driver and Intel windows).

It doesn't scale as much as subprocesses for material
shader compilation but that is for other reasons
explained in #139818.

Add some heuristic to avoid too much memory usage
and / or too many stalls.

Also add some heuristic to the default number of subprocess for
the platform that shows scalling.

Historically, multithreaded compilation was prevented by the
need of context per thread inside `DRWShader` module.
Also there was no good scaling at that time. But
nowadays numbers shows different results with
good scaling with reasonable amount of threads on many
platforms.

Even if we are going for vulkan in the next release
most of the legacy hardware will still use OpenGL for
a few other releases. So it is relevant to make this
easy improvement.

See pull request for measurements.

Pull Request: https://projects.blender.org/blender/blender/pulls/139821
2025-06-09 12:36:06 +02:00
Aras Pranckevicius
f685f23434 ImBuf: Remove pre-2.80 Texture mipmaps/filters
Removes various image filtering/mipmapping leftovers from
pre-2.80 days.

Code: removes all mipmap handling from ImBuf (which is about half of
ImBuf struct size), removes now unused "sample procedural texture
with mipmaps" code, now-unused FELINE filter, etc. The osatex
parameter to various CPU texture sampling functions is never
actually used, which means none of the mipmap code was ever executing.

User visible part: there were settings on the legacy Texture data
block (as used by Brushes etc.), under Sampling section: "MIP Map",
"Gaussian Filter", "Filter Type", "Eccentricity", "Minimum Size" --
they had no effect anywhere, so they are gone, and what remains is
only "Interpolation" and "Size".

RNA / Python API part: removes the ImageTexture RNA properties
corresponding to the above: filter_type, use_mipmap, use_mipmap_gauss,
filter_lightprobes, filter_eccentricity, use_filter_size_min.

Pull Request: https://projects.blender.org/blender/blender/pulls/139978
2025-06-09 11:35:19 +02:00
Eitan Traurig
e859df1126 UI: Add "Remove All Particle Systems" operator to particle systems context menu
Adds an operator that clears entire list of particle system. Operator is located
in particle system context menu.

Pull Request: https://projects.blender.org/blender/blender/pulls/138464
2025-06-08 12:46:38 +02:00
Julien Duroure
9f6377b302 Merge branch 'blender-v4.5-release' 2025-06-07 12:13:35 +02:00
Julien Duroure
32f464b3a9 Fix #139966 glTF: Fix unquote uri filenames 2025-06-07 12:12:41 +02:00
Campbell Barton
728812541e Merge branch 'blender-v4.5-release' 2025-06-07 12:40:48 +10:00
Campbell Barton
3d8fc6ba9d PlayAnim: use the same GPU backend as Blender
Since the animation player doesn't read the user preferences,
pass the GPU backend as an argument.
2025-06-07 12:37:12 +10:00
Sean Kim
ab3c129dd9 Refactor: Paint: Rename brush _tool properties to _brush_type
This commit renames the python Brush properties that end with `_tool` to
`_brush_type` (e.g. `sculpt_tool` -> `sculpt_brush_type`) to better
distinguish the property from the concept of tools in a workspace
context.

Resolves #124201

Pull Request: https://projects.blender.org/blender/blender/pulls/139909
2025-06-06 23:40:13 +02:00
Damien Picard
e1c9704108 VSE: Swap shortcuts for next and previous strip jump
Currently, jump to next/previous strip use page up and page down,
respectively. This seems backwards, as up should go back and down
should go forward, same as in a text editor.

This commit swaps the shortcuts for Blender default and
industry-compatible keymaps.

-----

This behaviour was introduced at the same time as the operator in c2f9cfb40a.

Pull Request: https://projects.blender.org/blender/blender/pulls/138339
2025-06-06 19:38:11 +02:00
Pratik Borhade
0eed084cad UI: Use Tree view for shape keys
Shifting to Tree view will now allow drag-drop for shape-keys.
(And also possible to create nested shape keys if we want to include
support for them in future)
With !138979, multi-select support will be implemented for shape keys.

Part of #136838

See video in PR description

Pull Request: https://projects.blender.org/blender/blender/pulls/139323
2025-06-06 12:03:47 +02:00
Pratik Borhade
0324ca7f15 UI: Move empty image to Image menu
Empty image was previously part of `Empty menu`. It may fit better
within "Image" menu, see: !134999

Pull Request: https://projects.blender.org/blender/blender/pulls/138121
2025-06-06 10:49:29 +02:00
Julien Duroure
f1b4b689dc Merge branch 'blender-v4.5-release' 2025-06-06 09:27:23 +02:00
Julien Duroure
12ee7eb18e Fix #139904 glTF: Fix typo regression for uri 2025-06-06 09:26:32 +02:00
Aras Pranckevicius
5ad6d42c83 IO: Remove Collada import/export
Removes Collada import/export (has been deprecated since 4.2).

Pull Request: https://projects.blender.org/blender/blender/pulls/139337
2025-06-06 08:38:57 +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
Julien Duroure
9495d88923 glTF: Update addon version after 4.5 branch creation 2025-06-05 17:55:38 +02:00
Campbell Barton
9a79ed5fb4 Merge branch 'blender-v4.5-release' 2025-06-05 21:31:39 +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
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
Campbell Barton
4167f09c0d Merge branch 'blender-v4.5-release' 2025-06-05 15:41:47 +10:00
Campbell Barton
6fbef14f4b PyDoc: quiet wanings/prints when building docs 2025-06-05 05:31:51 +00:00
Brecht Van Lommel
c2a2d1af1b Merge branch 'blender-v4.5-release' 2025-06-04 19:25:20 +02:00
Brecht Van Lommel
2167a65e11 Fix: OSL camera templates should not have copyright and license header
For consistency with other templates, these can be used in new code without
restrictions.
2025-06-04 19:24:52 +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
Falk David
889751b0c5 Grease Pencil: Add Convert Curve Type operator
Adds a new operator in Grease Pencil edit mode to convert between curve
types. This acts as a replacment for the `Set Curve Type` operator as
the new operator better aligns with previous workflows and artist
expectations. Specifically using a threshold to adjust how well the
resulting curves fit to the original.

It can be found in the `Stroke` > `Convert Type` menu.

This operator aims at keeping visual fidelity between the curves. When
converting to a non-poly curve type, there's a `threshold` parameter
that dictates how closley the shapes will match (a value of zero meaning
an almost perfect match, and higher values will result in less accuracy
but lower control point count).

The conversion to `Catmull-Rom` does not do an actual curve fitting.
For now, this will resample the curves and then do an adaptive
simplification of the line (using the threshold parameter)
to simulate a curve fitting.

The `Set Curve Type` operator is no longer exposed in the
`Stroke` menu.

This also adds a new `geometry::fit_curves` function.

The function will fit a selection of curves to bézier curves. The
selected curves are treated as if they were poly curves.

The `thresholds` virtual array is the error threshold distance
 for each curve that the fit should be within. The size of the virtual
 array is assumed to have the same size as the total number of
 input curves.

The `corners` virtual array allows specific input points to be treated
as sharp corners. The resulting bezier curve will have this point and
the handles will be set to "free".

There are two fitting methods:
* **Split**: Uses a least squares solver to find the control
                     points (faster, but less accurate).
* **Refit**: Iteratively removes knots with the least error starting
                     with a dense curve (slower, more accurate fit).

Co-authored-by: Casey Bianco-Davis <caseycasey739@gmail.com>
Co-authored-by: Hans Goudey <hans@blender.org>

Pull Request: https://projects.blender.org/blender/blender/pulls/137808
2025-06-04 11:48:15 +02:00