Commit Graph

120645 Commits

Author SHA1 Message Date
Campbell Barton
bb9d491ca5 Merge branch 'blender-v4.5-release' 2025-06-14 16:02:07 +10:00
Campbell Barton
fb3b1043d3 Cleanup: spelling in comments (make check_spelling_*) 2025-06-14 16:01:04 +10:00
Campbell Barton
c482c52346 Cleanup: sort CMake file lists 2025-06-14 15:57:33 +10:00
Campbell Barton
bb5f6d437e Cleanup: sort DNA rename definitions 2025-06-14 15:55:41 +10:00
Campbell Barton
6046b81e21 Cleanup: various minor chances to the NDOF API
- Use return values for NDOF access functions.
- Pass in event data by const reference as this is never null.
- Don't scale the angle from WM_event_ndof_to_axis_angle by the time
  delta since other functions don't do this, it's strange to make
  this an exception.
- Replace the term "pan" with "translation" since pan in Blender
  typically refers to moving the view in 2D using cursor input,
  not 3D transaction.
- Use a more descriptive term "time_delta" for the time between NDOF
  motion events.
2025-06-14 04:48:21 +00:00
Campbell Barton
fac42009ff Merge branch 'blender-v4.5-release' 2025-06-14 12:28:52 +10:00
Campbell Barton
d40aee71db Merge branch 'blender-v4.5-release' 2025-06-14 12:28:46 +10:00
Campbell Barton
eef3fc50f0 Cleanup: corrections to comments & typos 2025-06-14 12:28:18 +10:00
Campbell Barton
ce760b7f0b Fix NDOF panning in 2D views ignoring the delta time
The delta-time is used as a scale for panning in all other views.
2025-06-14 12:25:08 +10:00
Campbell Barton
a197b1811a Fix #140165: NDOF panning reversed
Regression in [0] caused NDOF panning to be reversed
and zoom to be inverted in the 3D viewport.

- Use 2D viewport behavior for cameras & rotation locked views
  since the navigation mode is not used in these cases.
- Restore the same zoom direction as 4.4x.

[0]: 64696cc699
2025-06-14 12:22:36 +10:00
Jesse Yurkovich
3fa1344dd7 Merge branch 'blender-v4.5-release' 2025-06-13 16:11:31 -07:00
Michael B Johnson
07342407d3 USD: Add support for Point Instancing during Export
Adds a Point Instancing exporter based on the existing
USDPointInstancerReader. Covers both round-trip and Blender-native
workflows. Exports 'Instance on Points' setups as USDGeomPointInstancer,
supporting objects, collections, and nested prototypes.

A warning is shown during export if invalid prototype references are
detected. These would occur if an instancer attempts to instance itself.

This feature is currently gated behind an off-by-default export option
(`use_instancing`) as there are still a few cases which can yield
incorrect results.

Further details in the PR.
Ref: #139758

Authored by Apple: Zili (Liz) Zhou

Pull Request: https://projects.blender.org/blender/blender/pulls/139760
2025-06-14 01:10:55 +02:00
Sean Kim
5c4748f8fc Cleanup: Use C++ math types for BKE_subdiv_eval.hh and related functions
The remaining function, `eval_vertex_data` is left as a raw array for
now, as the format is not cleanly defined, and is either 3 floats or 6
floats, depending on different settings enabled.

Pull Request: https://projects.blender.org/blender/blender/pulls/140315
2025-06-14 00:13:22 +02:00
Sean Kim
3ef4a106b8 Cleanup: Convert parameter comment into docstring
Pull Request: https://projects.blender.org/blender/blender/pulls/140318
2025-06-13 23:41:04 +02:00
Sean Kim
9bc98f304a Cleanup: Remove unnecessary const for function parameters
Pull Request: https://projects.blender.org/blender/blender/pulls/140317
2025-06-13 23:30:46 +02:00
Sean Kim
6e32b7a115 Cleanup: Convert eAverageWith to enum class
Pull Request: https://projects.blender.org/blender/blender/pulls/140327
2025-06-13 23:29:29 +02:00
Harley Acheson
13c9ac9de9 Fix #140372: Draw Block Contents at Negative Position
While trying to keep content within narrowing areas with ca3076ed35, I
was a bit overzealous. Content needs to show within a rect with
negative positioning as shown in this report.

Pull Request: https://projects.blender.org/blender/blender/pulls/140380
2025-06-13 22:15:50 +02:00
Harley Acheson
24a80f250e UI: Increase Area Padding at Window Edges
This PR slightly increases the area border padding at the window edges.
The current lack of padding looks awkward when paired with area
highlighting since that line hits the window edges.

Pull Request: https://projects.blender.org/blender/blender/pulls/137925
2025-06-13 19:58:40 +02:00
Howard Trickey
d230aa498e Merge branch 'blender-v4.5-release' 2025-06-13 10:54:34 -04:00
Rob Blair
fc0b659066 Fix divide by zero in Bevel.
The [Fix #125024: Bevel offset - eliminate divide by 0] (#126309)
in response to [Bevel Modifier creates unwanted geometries] (#125024)
created "divide by 0" situations when checking for clamp overlap geometry
in the bevel modifier. This PR eliminates this undefined behavior.

Original PR by Rob Blair. Modified by make format and added
a needed include.
2025-06-13 10:47:56 -04:00
Miguel Pozo
f4e6ad4d24 Core: Use VectorList for duplilists
Replace Listbase with a VectorList for duplist generation.

Performing one heap allocation for each dupli becomes very costly on
scenes with many instances.
Using a VectorList can make playback up to 15% faster.

Most scenes will have lower performance improvements,
but none of the ones I tested were slower.

VectorLists also have the advantage of being able to query the size of
the duplilist.

Pull Request: https://projects.blender.org/blender/blender/pulls/138947
2025-06-13 16:28:54 +02:00
Hans Goudey
4b4ed8bccc Mesh: Split paint overlay flag data from normals buffers
For paint modes the selection and visibility were encoded in in the W
component of the normals. Separating the normals  into a separate vertex
buffer, though it increases memory usage a bit in those paint modes,
means the status doesn't need to be computed outside of paint modes,
and the whole system becomes less convoluted and easier to optimize.
The particular optimization I have in mind is better caching of vertex
buffers, which gets much more complicated when the normals VBO contains
data like selection and visibility and depends on the paint mode.

Internally, a there are now three mesh draw batches that are specific to
the paint overlay. The GPU subdivision normals buffer is now just three
components rather than 4 components.

Pull Request: https://projects.blender.org/blender/blender/pulls/140156
2025-06-13 16:08:46 +02:00
Clément Foucault
af291eecce Cleanup: ViewLayer: Move defaults to DNA defaults 2025-06-13 16:00:53 +02:00
Clément Foucault
77b2bbd78e Fix: EEVEE: Wrong default on scene creation and startup file
- Shadow not enabled in new scenes
- Volume custom range enabled in default startup files
2025-06-13 16:00:53 +02:00
Mattias Fredriksson
9e2e90e8ce Cleanup: Inline NURBS methods for computing length of knots/points vector
Inlines knots_num() and adds an inlined utility function for computing
the total number of points in a nurbs curve. This should avoid potential
code duplication and allows behavior to be searched for.

Named function 'control_points_num()' to differentiate from the
'points_num' variable (referencing the number of unique points).

Pull Request: https://projects.blender.org/blender/blender/pulls/140248
2025-06-13 15:59:13 +02:00
Clément Foucault
a353fb3527 GPU: Remove use_select_pick_depth option
This option does nothing since 4.4. This commit
just remove it from the API, and clear the bit inside the DNA.

Pull Request: https://projects.blender.org/blender/blender/pulls/140338
2025-06-13 15:38:15 +02:00
Clément Foucault
1c29a2e2e5 EEVEE: Rename and move old gtao properties
- Move `gtao_distance` to view layer and rename to
  `ambient_occlusion_distance` (API change).
- Remove `gtao_quality` from the RNA (API change).
- Remove `use_gtao` (unused) from the RNA (API change).
- Rename `gtao_focus` to `fast_gi_bias` in the DNA (no API
  change).
- Rename `gtao_resolution` to `fast_gi_resolution` in the
  DNA (no API change).

Pull Request: https://projects.blender.org/blender/blender/pulls/140298
2025-06-13 15:36:17 +02:00
Jacques Lucke
a996490b83 Fix: use runtime format string
This is necessary to compile Blender with C++20.
2025-06-13 14:31:40 +02:00
Jeroen Bakker
65685b2c70 Merge branch 'blender-v4.5-release' 2025-06-13 13:31:01 +02:00
Jeroen Bakker
6899c2dbfd Fix #140342: Vulkan: Assert when quiting
When quiting Blender the timeline doesn't get updated and an assert is
triggered that the order isn't correct. The order isn't that important
anymore as the mechanism has been tested. The assert was useful during
initial development.

This PR removes the assert as it isn't valid in all cases.
2025-06-13 13:28:37 +02:00
Clément Foucault
4fe75da973 EEVEE: Remove all remaining reference of EEVEE next
This changes the engine identifier back to `BLENDER_EEVEE`.

We keep the `BLENDER_EEVEE_NEXT` identifier around for
versioning reasons (have to detect when it is the active
engine of a older file).

This also rename a bunch of pannels that were using `next`
in their name.

This is a breaking change for Addons compatibility.

Pull Request: https://projects.blender.org/blender/blender/pulls/140282
2025-06-13 12:36:14 +02:00
Habib Gahbiche
f98462ff2e Fix: Crash if new_compositing_node_group is called from wrong context
How to reproduce:
1. Create a new blend file without a compositing node tree
3. Go to Scripting workspace (node editors should not be visible)
2. In python console type
`bpy.ops.node.new_compositing_node_group`
3. Observe crash

The reason is that `node_composit_poll_rlayers()` fails because the
Render Layers node cannot be added to a non local compositing node
tree. This restriction was removed so the poll should succeed.

Pull Request: https://projects.blender.org/blender/blender/pulls/140222
2025-06-13 12:07:52 +02:00
Pratik Borhade
1d83e9bfe3 Fix #140224: Group ID in drag search of merge layer is not working
This is due to missing `make_available` callback for Group ID socket.
Use it to change the mode of the merge layer node so that socket is
available in `connect_available_socket()`

Pull Request: https://projects.blender.org/blender/blender/pulls/140251
2025-06-13 11:55:19 +02:00
Omar Emara
cf9c419fba Merge branch 'blender-v4.5-release' 2025-06-13 12:17:33 +03:00
Omar Emara
b62ef2cdd6 Compositor: Add forward compatibility for removed storage
This patch removes node init functions that currently exist only for
forward compatibility and moves the logic to the forward compatibility
section of node writing. This is to avoid allocating unused data
throughout the 5.x series.

Pull Request: https://projects.blender.org/blender/blender/pulls/140273
2025-06-13 11:15:51 +02:00
Sebastian Parborg
a75fcd5d4a VSE: Make cache eviction a bit smarter when wrapping.
Also fix some minor cache and prefetch bugs that became more noticeable
with these changes.

Pull Request: https://projects.blender.org/blender/blender/pulls/139635
2025-06-13 11:12:41 +02:00
Sebastian Parborg
5bd03f3618 VSE: Move the seq prefetch setting to the cache tab and turn on per default 2025-06-13 11:12:34 +02:00
Sebastian Parborg
c0c03005e5 VSE: Clear out caches when toggling them off
We wouldn't clear the cache we disabled leading to end users needing to
trigger cache refreshes to eventually clear out the cache that they
disabled.

This also fixes a minor issue where the prefetch would try to prefetch
even if there were no caches enabled.
2025-06-13 11:12:34 +02:00
Sebastian Parborg
3192186485 VSE: Fix endless prefetch loops
Sometimes we could get into scenarios where the prefetch would stop and
restart endlessly. Now we only stop the prefetch job when we don't want
to continue to prefetch anymore. Before we would exit when there is
currently no more prefetch work to do.
2025-06-13 11:12:34 +02:00
Sebastian Parborg
38b178f7db VSE: Make prefetch RAW cache aware
Before this change prefetching would not work correctly with only RAW
caches. The RAW caches wouldn't previously be emptied either if
switching them off while prefetching was turned on.
2025-06-13 11:12:34 +02:00
Sebastian Parborg
7a291d6e5f VSE: Make prefetch aware of playback loops
Now the prefetch will start prefetching from the start frame if it hits
the end frame and still have cache space to spare. This improves
playback when playing loops. It also makes it possible for end users to
define an area to pre-fetch by setting the preview range.
2025-06-13 11:12:34 +02:00
Clément Foucault
a639f99987 Fix #140325: EEVEE: Uninitialized memory used in raytracing specialization
These two variables were only set during `trace()` and not for
`warm_shader_specialization`.
2025-06-13 11:05:11 +02:00
Jacques Lucke
323e1432e7 Merge branch 'blender-v4.5-release' 2025-06-13 10:17:46 +02:00
Jacques Lucke
d21d7702ca Fix #140289: only show link warnings when link is visible 2025-06-13 10:17:19 +02:00
Bastien Montagne
ec02c89666 Cleanup: BLO: Remove last bits of endianness handling in readfile.cc
Forgot to remove this once we decided to not keep BE support for the
thumnailer.
2025-06-13 09:49:40 +02:00
Bastien Montagne
a91dbf1d41 Cleanup: Warnings in non-debug builds. 2025-06-13 09:49:40 +02:00
Campbell Barton
1a479122eb Fix the animation player making multiple calls to free depsgraph nodes
More of a technicality as it didn't seem to cause problems.
2025-06-13 16:11:25 +10:00
Campbell Barton
4f4ce05435 Fix memory leak with the animation player exited with an error
When dropping files onto the player window the animation the player
would restart, freeing everything except for the GHOST_System.
This caused a memory leak in the case of an error, returning without
freeing the system.

Resolve by freeing the system along with everything else.
2025-06-13 15:49:17 +10:00
Sean Kim
6640729191 Merge branch 'blender-v4.5-release' 2025-06-12 19:41:02 -07:00
Sean Kim
9c946e87a5 Fix #140305: Smooth Paint brush corrupts color attribute data
Pull Request: https://projects.blender.org/blender/blender/pulls/140311
2025-06-13 04:39:53 +02:00