Commit graph

2741 commits

Author SHA1 Message Date
1P2D
e2aaab991b Outliner: "Show Users Column" in View Layer and Scenes mode
User counts are currently only visible in Outliner Blender File mode
or through the Properties Editor. Since the Outliner is most commonly
used in View Layer and Scenes modes, this PR introduces a new option,
“Show Users Column” (False by default) to make this information
available directly in those views.

See PR description for images and RCS thread

Pull Request: https://projects.blender.org/blender/blender/pulls/156555

---------

Co-authored-by: Pratik Borhade <25420+pratikpb2123@noreply.localhost>
2026-09-28 11:26:35 +02:00
Sean Kim
93d2971f53 Cleanup: make format 2026-09-22 18:41:55 +02:00
Casey Bianco-Davis
44c411cd5d Grease Pencil: Use Unified Paint Settings in Draw Mode
This makes it so that all the draw mode tools can use
the `Unified Paint Settings`.
Similar to other modes, the toggle for using unified settings is exposed
in the side panel and in the context menu.

Pull Request: https://projects.blender.org/blender/blender/pulls/160195
2026-09-22 16:54:02 +02:00
Pablo Vazquez
d07c0815da Fix: UI: Remove extra separator in View panel
Found during UI Module workshop at BCON26.
2026-09-22 13:01:37 +02:00
Eitan Traurig
a5e564c354 Outliner: Custom Sorting for Objects and Collections
This PR is an implementation of #68502. The PR adds manual sorting for
objects in the Outliner, allowing users to manually reorder objects and
collections. Objects and Collections can be interleaved. Old files are
switched to Custom mode.

If both Alphabet and non alphabet sorting is on in the old file the
sort_index will use the non alphabet(collection.gobject) order and the
outliner with Alphabet will stay in alphabet mode.

The objects are sorted in the UI not the actual collection storage
(Collection.gobject) due to the concern that other code may need scene
data in a different order, or might want to change order for its
operations. New objects are placed at the end of the collection. If the
objects were added in alphabetical modes they get added add the end in
alphabetical order. If you add in custom mode the objects are added at
then end. I multiple are added with a script the objects get added at
the end of the collection in alphabetical order.

CollectionObject's sort_index and parented_sort_index are exposed to the
Python API. CollectionChild's sort_index is also exposed. When in
alphabet mode there may be gaps in sort_index values or index of -1,
meaning the object has not been assigned a value (This will happen when
switching to custom, or it manually be set). When in custom mode if an
object was added with python and the Depsgraph has not run with
ID_RECALC_HIERARCHY tagged, then there can be gaps or index of -1.

Initial ordering is preserved from the ordering mode the was switched
from when first switching to custom ordering.

If an old file had alphabet mode off that order of the gobject is the
initial sort_index order and the new mode is now custom.

Pull Request: https://projects.blender.org/blender/blender/pulls/157716
2026-09-22 12:10:43 +02:00
Dalai Felinto
e67acc8bf8 Revert "Assets: Add Webpage meta-data field"
This reverts commit 90b85d5d17.

While this feature was properly implemented, and "built to spec", the
decision to have it was bit rushed (by me).

For now we will not have this feature in 5.3. In the future we can
support this while adding more guardrails when users click on a link
that sends them to a non blender.org url.

I talked to Guillermo about it.
2026-09-21 14:35:01 +02:00
Brecht Van Lommel
7054d3254b UI: Remove auto-run preference from warning prompt, communicate risk
It's not generally recommended to enable this, and having it here makes
it too easy to enable without understanding the consequences.

Additionally:
* The preferences now show a text with more information when the
  preference is enabled, to make the consequences more clear.
* The prompt text and button label was improved.

Co-authored-by: Pablo Vazquez <pablo@blender.org>

Pull Request: https://projects.blender.org/blender/blender/pulls/164055
2026-09-20 00:15:08 +02:00
John Kiril Swenson
243fbe44a3 Fix: Various crash/bug fixes with differing active scene and sequencer scene
There were many cases across the VSE codebase where the active scene
was used rather than the current sequencer scene.

Thus when the two differed many bugs could arise.
When changing cache settings, there was even a crash. In other cases,
operators/properties would just fail to register.

Pull Request: https://projects.blender.org/blender/blender/pulls/164154
2026-09-19 23:00:16 +02:00
Falk David
02c927c0ff Grease Pencil: Draw Tool: Add option to create cyclic stroke
Adds a tool option to create cyclic strokes.
This is exposed in the header and the side panel.

Pull Request: https://projects.blender.org/blender/blender/pulls/157190
2026-09-18 14:43:36 +02:00
Casey Bianco-Davis
302eb8bddc Grease Pencil: Boolean Carver Tool
This PR implements a new `Carver` tool in Draw Mode.

Both strokes & fills are cut along the lasso input. Holes are
automatically created when needed.

Notes:
* Cutting non-poly curves is currently not supported. All non-poly type
  curves near the lasso will be converted to poly, with a warning
  displayed to the user.
* Fills are automatically split into separate ids when the shape is
  split up into multiple fill islands.
* If a curve uses both stroke and fill, carving a hole into the fill
  will also add a stroke to the hole.
* If a curve uses both stroke and fill, carving into the shape from the
  outside will currently close the fill.

The implementation is based on a modified version of the Greiner-Hormann
clipping algorithm.

Pull Request: https://projects.blender.org/blender/blender/pulls/144181

---------

Co-authored-by: Falk David <falk@blender.org>
2026-09-18 11:29:27 +02:00
Jacques Lucke
1a542e4131 Nodes: new Comment node
This adds a new Comment node to simplify documenting a node tree.

Currently people use two main ways to add such comments:
* Frame nodes with titles/descriptions. Titles should stay, but
  multi-line text in frame nodes doesn't work well and might be removed
  eventually.
* String input nodes. Since those have multi-line textboxes, they can be
  used for documentation.

For the common use-case of adding a description to some part of the node
tree (that is not just a frame title), this new Comment node is superior
to both alternatives. It has better ux and supports markdown rendering.

The Comment node uses the same background color as frame nodes and thus
integrates nicely visually already. It also has the same alternating-color
behavior like nested frames so that it remains visible even if it's in a
frame.

There are multiple ways to edit the comment:
* Double click on it.
* Activate the node and press F2.
* Hover the node and hit enter.
* Click the edit icon.
* In the sidebar in the node panel.

Pull Request: https://projects.blender.org/blender/blender/pulls/163168
2026-09-18 01:29:37 +02:00
Pablo Vazquez
2846da71be UI: Add tooltips to add effects/modifiers menus
Menus can now show a tooltip when called from a menu thanks to
0d06dbf124.

Add it to the Add Scene Effect and Add Modifier (strip) menus.
2026-09-17 19:06:12 +02:00
Christoph Lendenfeld
b988d827b6 Anim: world space copy paste frame range
This adds functionality to store world space data in a temporary file
on disk and paste it on other objects.
(technically `AnimTransformable`s, which is objects or bones, but for
simplicity I will be talking about "objects" here)
Compared to the existing functionality this can also copy a
range of frames. Because the data is stored on disk, it is possible
to copy and paste between files.

**Matching Logic**
* When 1 object copied and 1 selected -> paste no matter the naming
* When 1 object copied and 2:n selected -> paste the same data to
all selected
* When 2:n objects copied and 1:n selected -> paste based on naming.
It is possible to paste between objects and bones as long
as the name matches.

**Depsgraph**
* Introduces a new API function `DEG_foreach_dependent_component`
* this function iterates the outgoing links starting at a given ID
* it is used to find the order in which to paste world space transforms
since we have to paste in order of dependency -> dependent
for it to work correctly.

**UI**
Adding a new panel because the new operators are not compatible
with the existing ones. I cannot remove the existing operators because
they provide functionality that I don't yet provide.
To make it clear that they don't work together, they get their own panel.

**Limitations**
* objects with constraints may not end up at the correct world space.
That is expected for limit constraints, but additive constraints would
need to be inverse solved which is a job for another day.
* when the rotation mode is animated, pasting world space animation
will override all keys in the baked range to be the value at the
start of the range.

**Performance**
Testing in a file with 10.000 frames of dense keyframe data.
Copying a single bone:
* Copying ~1.6 seconds
* Pasting ~1.6 seconds

Copying 3 bones of the same armature
* Copying ~1.6 seconds
* Pasting ~4.8 seconds

The extra evaluation required when pasting makes this scale with the
amount of bones we are pasting.

Part of #156579

Pull Request: https://projects.blender.org/blender/blender/pulls/159390
2026-09-17 16:02:26 +02:00
Lukas Tönne
e0f6bb4fb1 Geometry Nodes: Poisson solver node for grids
The grid Poisson solver node solves `Poisson's equation, which relates
the value of each grid voxel to its neighbors. The result is an output
grid that produces the input grid when the Laplace operator is applied
(sum of gradient contributions from surrounding voxels).

In addition to the source values of the input grid the solution also
depends on boundary conditions at the edge of the solution space.
The default condition enforces a solution value of zero at the boundary
everywhere. Other modes allow enforcing custom fixed values
(Dirichlet condition), or custom gradient values of the resulting
function (Neumann condition), or a combination of both ("Mixed" boundary
condition).

The node is based around the OpenVDB Poisson solver. The solution is
computed on the active values of the input grid. Voxel faces between
active and inactive voxels form the boundary. Technically each face
could have its own boundary conditions, but for practical reasons the
conditions are evaluated at all inactive voxels bordering on the active
solution space (i.e. a 1-voxel dilation of the input grid). This means
all boundary voxels share the same condition, which is an acceptable
limitation for common Poisson problems.

Pull Request: https://projects.blender.org/blender/blender/pulls/163484
2026-09-17 10:13:19 +02:00
Campbell Barton
3d39eceaee PyAPI: use None for bpy.app.autoexec_override when it isn't set
Expose `bpy.app.autoexec_override` as as bool or None,
so the boolean can be used to indicate the command line
argument passed in.

Ref !164033
2026-09-17 14:27:02 +10:00
Campbell Barton
93145bafae Core: apply auto-execution overrides when opening blend-files
Command line overrides now define the default "Trusted Source"
for drop and the file-selector.

This is done so the default matches the behavior of opening
files in contexts where the option to trust source isn't shown.

"Recover Last Session" run without setting "use_scripts"
(from Python for e.g.) now disables auto-execution
unless a command line override is passed in,
as the path being recovered isn't known until the file is read.

This includes a refactor & tests.

Details:

- `bpy.path.is_autoexec(..., skip_overrides=False)`:
  Can be used to check if the current environment would trust a file.
- Expose: `bpy.app.autoexec_override`,
  set when `--enable-autoexec` & `--disable-autoexec` are passed in.
- `BKE_autoexec_default_trust_source`:
  new function to more conveniently access the default trust for a file.
- Show when "Auto Run Python Scripts" preference is overridden.
- Add tests for the file selector, dropping & the command line.

Ref !163894
2026-09-17 11:17:29 +10:00
Jacques Lucke
ef0d14592f Shader Nodes: support Enable Output node
This adds support for the Enable Output node to shader nodes. The same
node is already used by Geometry Nodes and the Compositor. It allows
building node groups that dynamically hide certain outputs based on
inputs. Like elsewhere, this dynamic show/hide behavior only works when
driven by a menu.

During evaluation, this node mainly just acts like a switch node that
switches between the provided value and a default/fallback value for the
socket type.

Pull Request: https://projects.blender.org/blender/blender/pulls/163997
2026-09-17 01:53:58 +02:00
Hans Goudey
0d06dbf124 UI: Display menu description in popup button tooltip
For the `wm.call_menu` operator, display the menu's description
rather than "Open a predefined menu." And never show that
fallback tooltip.

Pull Request: https://projects.blender.org/blender/blender/pulls/164011
2026-09-16 19:32:03 +02:00
Sergey Sharybin
472bf1444b Geometry Nodes: Add "Set Point Cloud Type" node
Allows to control type of point cloud processed or generated by
geometry nodes. The type could either be Points or 3D Gaussian Splat.

The type is set to the entire point cloud geometry component and
currently it affects how this component will be handled by render
engines.

The behavior is similar to changing the Point Cloud Type in the
properties panel: the node just sets the type. No changes to the
attributes is performed by this node.

Ref #159470

Pull Request: https://projects.blender.org/blender/blender/pulls/163530
2026-09-16 16:52:10 +02:00
Sergey Sharybin
1be8f41103 Geometry Nodes: Implement Import SPZ node
A straightforward node that accepts file path to an SPZ file and
outputs point cloud of type 3D Gaussian Splats.

The node performs conversion from the SPZ coordinate convention
to Blender coordinate convention. Note that this convention is not
always followed by all assets on the Internet. The unfortunate part
is that it is not trivial to convert the coordinate systems as the
spherical harmonics attribute requires special handling.

For the efficiency extra parameters might need to be added to the
node. Or, alternatively, spherical harmonics need to become a
native attribute type, so that we can have transform nodes applied
on them.

Ref #159470
2026-09-16 16:52:10 +02:00
Sergey Sharybin
330ef38ef3 GSplat: Implement SPZ format importer
The SPZ format is more space efficient storing gaussian splats, and is
quite popular on the Internet.

This commit implements it naively without using the SPZ library.
Motivation:

- Simplifies platform maintenance.

- Allows to have writes of different versions.
  For example, glTF currently mentions SPZ v2 in the extension draft
  while the current SPZ library is v4 (it is a bit unclear whether glTF
  is talking about library or format version tho).

- Lowers peak memory usage by avoiding multiple copies of the same data
  in memory.

Currently does not implement extensions reading, and does not handle
the anti-alias flag.

Expects the content to follow the convention of Right-Up-Back.
An observation was made that not all editors and tools create SPZ files
with this convention. Even the ply_to_spz command line tool from the
SPZ repository does not transform the typical PLY convention assumed by
the library to the SPZ convention. In practice it means that a manual
re-orientation of the import might be required.

The commit is limited to import via the File menu and dropping the
file onto the viewport. Support of importing SPZ via geometry nodes is
coming soon.

Ref #159470
2026-09-16 16:52:10 +02:00
Sergey Sharybin
6e18d7a3fd GSplat: Add type field to the PointCloud data-block
The type could be either "Point" or "3D Gaussian Splat".

It is defined in DNA, RNA, and exposed to the UI but does not actually
control anything yet. It is the first step towards native integration
of the 3D Gaussian Splat technique [kerbl3Dgaussians].

In the future the type will control the following aspects:
- Rendering algorithms
- Attribute handling to eventually support rigging of gaussian splats.

Attribute convention for the future IO and render engines integration:
- "scale" for the scale of the gaussian splat, stored as float3
- "rotation" gaussian splat rotation, stored as quternion
- "radiance:base" the base (DC) radiance of the splats, followed by
   opacity and stored as float4
- "radiance:sh_{index}" for the coefficients of the bands >= 1 of the
  spherical harmonics, stored as float3.

Note that the relation of scale and radius is not very trivial (meaning
storing scale as radius that would become float3 was considered but was
not accepted). The scale is used to define the covariance matrix, and
the gaussian splat is technically unbound. It is possible to calculate
a bounding radius for the splat using scale and a cut-off opacity, but
it is rather arbitrary.

[kerbl3Dgaussians] Kerbl, Bernhard et. al.
  "3D Gaussian Splatting for Real-Time Radiance Field Rendering" (2023)
  ACM Transactions on Graphics
  https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/

Ref #159470
2026-09-16 16:52:10 +02:00
Sean Kim
d52e9484b5 Grease Pencil: Remove support for Paint Curve stroke type
Follow up to 4e3c40527f

This and other `Stroke` options primarily used in the Mesh, Image and
Sculpt painting modes were seemingly accidentially introduced with in
the transition to GPv3.

Additionally, with the plan to merge modes into the existing Draw Mode
(#161521), this makes Grease Pencil Sculpt Mode more consistent with
both Draw Mode and Vertex Paint. Future integration with these other
stroke types can be evaluated further in the future.

Pull Request: https://projects.blender.org/blender/blender/pulls/163834
2026-09-15 23:42:16 +02:00
Sybren A. Stüvel
90ed330a82 Anim: improve UI of Replace Action operator
Three small changes that improve the Replace Action UI:

- Add "..." to the label in the menus, to indicate there will be a
  popup.
- If the old or new Action cannot be found, show the Action names
  without the `AC` ID type prefix.
- If the old and new Action are the same, show "Cannot replace Action
  with itself" instead of the more cryptic "Invalid old/new Action
  pair".

Pull Request: https://projects.blender.org/blender/blender/pulls/163959
2026-09-15 16:22:28 +02:00
Pablo Vazquez
fe768c5862 UI: Add Project menu to top bar
Add a Project menu to the top bar, shown only while working in a
project file.

Provides quick access to Project Settings, and a menu for TD's to
append info. The Blender Studio already uses a similar approach.

See !163907 for screenshots.

Part of #163148

Pull Request: https://projects.blender.org/blender/blender/pulls/163907
2026-09-15 16:00:23 +02:00
Jacques Lucke
70d2ff933f Shader Nodes: support Warning node
This ports the Warning node from Geometry Nodes and the Compositor to
shader nodes. It is entirely handled by the inliner, so underlying
render engines don't need to change.

The node allows creating custom error/warning/info messages for higher
level node groups.

The most tricky thing about this node is that the warning node is not
necessarily connected to the output. The same solution as for Geometry
Nodes is used:
* If the output of the warning node is connected, nothing special is done.
  The node is just evaluated if its output is used.
* If the output is unconnected, the node is evaluated if evaluation
  enters the compute context of that node.

We call nodes which need to be evaluated even though they are not
connected to the final output "side effect nodes". I used the same
terminology here.

Pull Request: https://projects.blender.org/blender/blender/pulls/162756
2026-09-15 14:33:00 +02:00
Pratik Borhade
4cf372ccdc Outliner: Holdout and Indirect only options for objects
Collection has holdout and indirect only restriction toggle in outliner.
These properties exist for object id too. Add them in outliner next to
individual object tree element.

See PR description for images and RCS thread

Pull Request: https://projects.blender.org/blender/blender/pulls/157334

---------

Co-authored-by: Brecht Van Lommel <brecht@blender.org>
2026-09-15 05:50:33 +02:00
Eitan Traurig
ebbd2ab38d UI: I/O: Match format labels with Import menu
Part of https://projects.blender.org/blender/blender/issues/162410
Add extensions dynamically to format labels rather than having the
extension list hardcoded and duplicated.

Extensions are added to the label dynamically based off the FileHandler
bl_file_extensions field which is the source of truth now. This allows
the extension list to be included for the Import and Export menu, and
relevant add menus, but not the UI List for collection export.

Details:
- Several extensions: replace ; by / (.glb;.gltf -> .glb/.gltf).
- Two or more extensions starting with the same first three letters:
concatenate with as many common letters as possible, and add *
(.usd;.usda;.usdc;.usdz -> .usd*).

Pull Request: https://projects.blender.org/blender/blender/pulls/163438
2026-09-14 21:01:31 +02:00
Jacques Lucke
ba82476ade Shader Nodes: support Integer Math node in EEVEE and Cycles
This adds the Integer Math node to shader nodes. It's the same node that
can already be used in Geometry Nodes and the Compositor.

While creating the regression test, I noticed that the integer math
implementation was a bit broken:
* The integer modulo (`%`) operator on the GPU is undefined for negative
  divisors (the added regression test showed that the behavior is not
  consistent across platforms).
* Use integer power function instead of using float implementation with
  casts.

The MaterialX implementation is omitted for now. I didn't look into it
in detail yet but for the Boolean Math node (#162798) it seemed like
some more work is needed there to support this type.

Pull Request: https://projects.blender.org/blender/blender/pulls/163805
2026-09-14 10:36:19 +02:00
Casey Bianco-Davis
349fc27092 Grease Pencil: Basic Draw Mode edit operators
This adds support for some of the basic edit mode operators
in Draw Mode:
- Circle, Box, and Pick selection tools.
- Copy and Paste operators.
- Delete operator.
- Transform operators.
- Draw mode `Stroke` menu.

Pull Request: https://projects.blender.org/blender/blender/pulls/162890

Note: The `x` and `b` keybind for delete and box select has not be added
because `x` is already used for swapping the brush colors and `b` is
used for box delete.

Co-authored-by: Falk David <falk@blender.org>
2026-09-14 09:58:33 +02:00
Jacques Lucke
6c74e82ecb Shader Nodes: support Boolean Math node in EEVEE and Cycles
This adds the Boolean Math node to shader nodes. It's the same node that
can already be used in Geometry Nodes and the Compositor.

This also fixes the conversion from other types to boolean values so that
it it consistent across different node tree types. Cycles doesn't have
native support for booleans currently (it encodes them in integers), so
for now this conversion is entirely handled in the inliner.

The MaterialX implementation is omitted for now because it seems to need
more work to properly integrate booleans (right now it appears to ignore
all links going from a float to a boolean socket for example).

Pull Request: https://projects.blender.org/blender/blender/pulls/162798
2026-09-12 14:43:16 +02:00
Casey Bianco-Davis
c79e6b58ab Viewport: add ability to flip the camera view
Support flipping the camera view.
A new operator `Flip View` is added in `View` > `Navigation`.

Currently, it's mainly designed for Grease Pencil where camera
view is the "canvas".

When the view is flipped it will be displayed in the `General
Info` text.

Also updates Passepartout and Render borders to properly
account for the flip.

Ref !161274
2026-09-11 10:38:45 +10:00
Pablo Vazquez
90430c2cbe UI: Mention "Scene Effect" instead of just "Effect"
With the rename of "Strip Modifiers" to "Strip Effects" (#163644),
and future kinds of compositor effects, it's important to consistently
call Scene Effects as such, consistent with the "Usage" panel.

Use "Scene Effect" in operators, menu, and default names.

Pull Request: https://projects.blender.org/blender/blender/pulls/163659
Co-authored-by: Habib Gahbiche <habib@blender.org>
2026-09-10 13:23:31 +02:00
Habib Gahbiche
908d2a2b4a Compositor: Show text info in node editor
Show 'Render Size' and 'Image Size' as text overlays in the node editor,
similar to the image editor. The option is disabled by default.

Pull Request: https://projects.blender.org/blender/blender/pulls/154273
2026-09-10 08:50:11 +02:00
Pablo Vazquez
af14d4d86e UI: Extensions: Use multiline label for warnings
Warning messages are custom by the authors and can be of any length,
use a multiline label.
2026-09-09 15:24:35 +02:00
Guillermo Venegas
bad8871dc5 UI: Add UILayout::property_split_factor static value
This adds the `UILayout::property_split_factor` property which contains
the split factor used in the layout system, and avoids to use the this
as raw value all over the place.

Pull Request: https://projects.blender.org/blender/blender/pulls/163393
2026-09-09 00:27:44 +02:00
RedMser
3048200244 Python: add context properties to retrieve scene & pose markers
Adds `context.markers` and `context.selected_markers` to simplify
accessing the markers relevant for the current animcontext.

Uses the context's scene to retrieve the relevant markers,
taking into account the possibility that we're in an Action Editor
with pose markers visible.

Updates the F2 rename operator to use this (although it might later
be updated to operate on the active marker instead).

The new properties intentionally don't query the sequencer scene,
since that might be unexpected or undesired in some situations.

If needed, a context override can be used to access (selected) markers
from another scene:

```py
with context.temp_override(scene=context.sequencer_scene):
    return context.markers
```

Adds python tests to retrieve markers from various sources using these
new context properties.

Pull Request: https://projects.blender.org/blender/blender/pulls/162157
2026-09-07 12:33:37 +02:00
Falk David
bc1e5d3208 VSE: Add "Middle" option to show thumbnails in the middle of strips
This adds an option "Middle" to the existing thumbnail style setting.

The thumbnails overlay panel is updated. The `None` option is removed
and replaced with a checkbox `timeline_overlay.show_thumbnails`.

When using scene strips for storyboarding it's common to only want
a single thumbnail for each shot/strip. Additionally, when zoomed out,
having just a single thumbnail helps as well and avoids overlapping
start/end thumbnails.

The implementation can reuse all the code from the "Strip Ends"
thumbnail option so only one new function
`get_seq_strip_middle_thumbnail` is needed.
Note that because we get the (rounded) center frame of the content,
zooming the timeline does not query a different content frame for the
thumbnails but can get the (potentially) cached frame.

Pull Request: https://projects.blender.org/blender/blender/pulls/163382
2026-09-07 10:31:38 +02:00
Christoph Lendenfeld
6931cf1893 UI: Dropdown menu for "Convert Rotation Mode" operator
This adds the rotation mode conversion operator from !154309
directly next to the rotation mode dropdown.

Continuation of !154309

Pull Request: https://projects.blender.org/blender/blender/pulls/159981
2026-09-07 08:20:07 +02:00
John Kiril Swenson
ea1680d241 VSE: Add drag-and-drop support for text datablocks and text files
Note that to support "multiple text files dragged in at once" we need to
use file handlers, which can't be passed any custom data (e.g. can't set
"text" property before calling SEQUENCER_OT_effect_strip_add).  To get
around this I just added a new SEQUENCER_OT_text_strip_add rather than
try to change any file handler code.

This should be backwards compatible; scripts can continue to call
effect_strip_add. But we might want to move to the new operator for 6.0
(see #154702).

Ref: !163440
2026-09-05 11:52:10 -05:00
Pablo Vazquez
5ae3e6f918 UI: Properties: Sort View Layer tab after Scene
The View Layer tab currently sits above the Scene, but View Layers
belong to the Scene.

Reflect this hierarchy in the Navigation Bar tabs order.

See !162368 for details and screenshots.

Pull Request: https://projects.blender.org/blender/blender/pulls/162368
2026-09-05 17:42:12 +02:00
Sean Kim
1a6eeebb9a Fix: UI: Show correct size value in texture paint context menu
Pull Request: https://projects.blender.org/blender/blender/pulls/163551
2026-09-05 03:22:41 +02:00
Sean Kim
a7a53fd5a5 Fix: UI: Incorrect experimental texture paint brush options show
We need to check against the current brush instead of only the
experimental flag.
2026-09-05 03:22:40 +02:00
Sean Kim
1feb1674bc Texture Paint: Migrate 3D draw brush out of Sculpt Mode
This commit moves the experimental 3D Texture Paint brush implementation
out of Sculpt Mode and into Texture Paint mode.

Instead of overriding the "Paint" brush in Sculpt Mode, it now
corresponds to the "Draw" brush in Texture Paint.

This is achieved by extending the existing `PAINT_OT_image_paint`
operator to use a different `PaintStroke` implementation if a supported
brush is being used with the experimental flag toggled.

Part of #162290

Pull Request: https://projects.blender.org/blender/blender/pulls/163220
2026-09-04 22:07:08 +02:00
John Kiril Swenson
d42b8e3728 VSE: Always list all clip, mask and scene datablocks in the Add menu
Previously, if more than ten of these IDs existed, it would hide the
list and fall back to the operator's enum search popup.

This is a just a remnant from when you couldn't use spacebar to search
menus and some submenus couldn't scroll (see 9e5577db47).

Instead of enum search, we can get native search of the submenu
on spacebar by just registering them as actual `MenuType`s.

This enum search also got in the way of any attempts to make an "import
then add" macro, which would help address #146635. Note that this is
also why we loop creating `operator`s here rather than applying a single
`operator_enum`.

Pull Request: https://projects.blender.org/blender/blender/pulls/163069
2026-09-04 17:37:35 +02:00
Le Gia Bao
fb61ad85d0 EEVEE: Add Support for Panoramic Camera View
# Implemented

- Panoramic camera types: equirectangular,
equiangular cubemap face, fisheye equidistant,
fisheye equisolid, fisheye lens polynomial,
central cylindrical, mirror ball.
- Render 6 subviews (fixed 90° FOV each, 5% overscan).
- Subview enable/disable masking (PanoramicViewBits)
to skip faces not needed for narrow FOV.
- Accumulate radial depth for panoramic projections.
- Film accumulation per owning face per pixel.

# Future tasks

### Turned off for now

- Depth of Field
- Volume temporal reprojection history state is shared
across all 6 subviews instead of per-view, so it's disabled
for now. Per-view history would be the real fix.

### Optimizations

- Per-face render resolution: scale each cubeface's resolution
to its actual angle contribution instead of a fixed size.
- Clip each subview's projection matrix to its actual visible FOV
instead of always rendering the full 90°. Needs care to clip to
exact pixel borders, or reprojection onto the film breaks.
- Stencil mask per subview to avoid computing weights.
(currently: pixels not owned by a face just copy their existing
value and return early).

### Known limitations

- Film sampling use nearest-texel only, not a proper filter kernel
(a 3x3 or plus-shaped 5-sample kernel would reduce
 aliasing/banding)
- No antialiasing at boundaries.
- Screen-space raytracing hits subview boundaries and
creates artifacts. Possible fix: overscan parameter and make a
blend between the cubefaces.

Pull Request: https://projects.blender.org/blender/blender/pulls/159474
2026-09-03 14:47:04 +02:00
Falk David
0135a6b6ac Grease Pencil: Basic selection support in Draw Mode
Implements basic selection support in Draw Mode. For now, there's not
much users can do with the selection. Following PR's will add operator
support.

* Add selection overlay support. Only show selected edit lines.
* Only support stroke selection.
* Expose lasso selection tool and some operators. E.g. select all/none.

Ref: #161558.

Pull Request: https://projects.blender.org/blender/blender/pulls/161685
2026-09-03 11:22:45 +02:00
Pratik Borhade
7037997c4d Outliner: New options for filtering contents
Add more options to filter out type specific contents from object. New
options are:
- Object data
- Vertex Group
- Shape Key
- Animation data
- Constraint
- Modifier
- Bone Collection
- Grease Pencil Effects
- Pose Bones
- Material

See PR description for image, video and RCS thread

Pull Request: https://projects.blender.org/blender/blender/pulls/156973
2026-09-03 10:46:24 +02:00
Campbell Barton
040c5ce1fd Cleanup: spelling in comments & code (make check_spelling_*)
Ref !163458
2026-09-03 14:53:49 +10:00
Campbell Barton
204af71e19 ToolSystem: add quad-sphere "method" which was missing from the tool
Ref !163458
2026-09-03 14:26:15 +10:00