Commit Graph

27499 Commits

Author SHA1 Message Date
Campbell Barton
4745a9f58e Merge branch 'blender-v4.3-release' 2024-10-31 18:51:58 +11:00
Campbell Barton
7a9d3e9973 Fix crash framing the camera to geometry in mesh edit-mode 2024-10-31 18:45:38 +11:00
Sean Kim
f3ee64fe5a Fix #129553: Sculpt crash when panning immediately after saving
This commit sets the default value of the number of frustum planes
for the PBVH to zero to prevent accessing invalid memory in cases where
the data may otherwise be uninitialized.

Pull Request: https://projects.blender.org/blender/blender/pulls/129600
2024-10-30 22:56:35 +01:00
Sean Kim
80f4b4806a Merge branch 'blender-v4.3-release' 2024-10-29 14:36:28 -07:00
Sean Kim
d1e78481e2 Fix #129519: Topology automasking stops working on multires level switch
The topology island cache needs to be freed when changing multires
levels so that it can be recalculated and be valid for a given level. To
fix this, this commit adds the `invalidate` call to the
`BKE_sculptsession_free_pbvh` method, which consolidates similar
lifecycle behavior.

Pull Request: https://projects.blender.org/blender/blender/pulls/129549
2024-10-29 22:32:53 +01:00
Julian Eisel
f49d0390a1 UI: Add asset browser option to sort by catalogs, new default
So far asset browsers always sorted assets by name, which resulted in
barely related assets being placed together, and related assets being
scattered. This can make navigating assets tedious, and introduces a lot
of visual noise because of scattered preview image styles.

Related assets are typically put into common asset catalogs, and related
catalogs are typically organized close to each other in the catalog
hierarchy. This makes catalogs a better characteristic to sort by,
solving the mentioned issues.

For asset shelves sorting by catalogs was introduced in 471378c666. This
PR exposes this feature to the asset browser, by introducing a new
option to sort either by name or by catalog. The new default is sorting
by catalog. Within a single catalog, assets are still sorted alphabetically.

Pull Request: https://projects.blender.org/blender/blender/pulls/129480
2024-10-29 16:58:49 +01:00
Sean Kim
af4974dfaa Cleanup: Remove dead code
Pull Request: https://projects.blender.org/blender/blender/pulls/129391
2024-10-25 20:19:33 +02:00
Sean Kim
71b9238703 Merge branch 'blender-v4.3-release' 2024-10-25 11:18:48 -07:00
Sean Kim
1dd6cdb172 Fix #129334: Multires displays incorrectly in Sculpt mode with materials
Introduced in 853269aeb0

Prior to this commit, the PBVH partitioning process did not work
correctly for multires meshes with materials. Specifically, it failed
upon mapping the partitioned faces into their corresponding corners.

The rough process here is as follows:
* Flatten out the array of face indices into an array of corner indices.
* Sum up each `GridsNode` `prim_indices` corner count into an array.
* Create an `OffsetIndices` from these sums
* Use the `OffsetIndices` to slice the array created at the beginning
  to assign to each node.

However, this process requires that the main PBVH array of corner
indices has the same order as iterating over the nodes, which the
partitioning algorithm does not do.

To solve this, this commit iterates over the Node `prim_indices` `Span`s
in the same order that the nodes are stored when flatting out the
corner data, ensuring a correct mapping.

Pull Request: https://projects.blender.org/blender/blender/pulls/129392
2024-10-25 20:17:39 +02:00
Sean Kim
7a45c89d7c Merge branch 'blender-v4.3-release' 2024-10-24 14:18:43 -07:00
Sean Kim
420a54a9e4 Fix #129373: Invalid "Cloth" asset shelf category appears in Sculpt mode
The catalog path was updated in
blender/blender-assets@88f1a1caf7 but was
not updated here, resulting in a category that had no effect when
toggled and was not visible in the larger tree view.

Pull Request: https://projects.blender.org/blender/blender/pulls/129387
2024-10-24 23:17:23 +02:00
Campbell Barton
70a7704641 Merge branch 'blender-v4.3-release' 2024-10-25 08:03:32 +11:00
Sean Kim
158f12db4d Cleanup: Document Sculpt PBVH debug_value usage
Pull Request: https://projects.blender.org/blender/blender/pulls/129360
2024-10-24 21:12:50 +02:00
Anthony Roberts
73974f7beb GPU Subdivision: Disable on Qualcomm GPUs on Windows
This resolves #124515 - albeit a little heavy handedly, as it disables 8cx Gen3 devices which work fine, but for the sake of code cleanliness, this should be okay.

Pull Request: https://projects.blender.org/blender/blender/pulls/129355
2024-10-24 11:55:48 +02:00
Omar Emara
c8dd6650db Merge branch 'blender-v4.3-release' 2024-10-22 11:54:27 +03:00
Lukas Tönne
71398478b2 Fix #128055: parentinv matrix uninitialized in old GPv2 files
In GPv2 the parentinv matrix is zero initially and only becomes valid
after setting the layer parent. This matrix must not be copied to the
GPv3 layers unless the parent is set.

In addition the parentinv matrix should also be computed when changing
the layer parent. This has been nominally added, except that a full
computation isn't possible without the actual grease pencil Object. This
means a local RNA property cannot update the parentinv matrix, this
needs to become a full-blown operator. The behavior now should be the
same as in GPv2 at least.

Pull Request: https://projects.blender.org/blender/blender/pulls/129304
2024-10-22 09:30:34 +02:00
Campbell Barton
0ae9ae736e Merge branch 'blender-v4.3-release' 2024-10-22 15:58:37 +11:00
Campbell Barton
f69fbb41c1 Fix #129225: Crash in modifiers & constraints with invalid enum values
Even though this is generally avoided, drivers don't prevent
invalid values being set. Further files from branches or files
written in the future may contain enum values not yet known.

Resolve by range checking enum values which are used to index arrays.
2024-10-22 15:56:58 +11:00
Falk David
3075bd3f2c Merge branch 'blender-v4.3-release' 2024-10-21 14:12:40 +02:00
Falk David
83e562aad4 Fix #129247: GPv3: Removing material doesn't remap some materials correctly
The issue was that the code that remaps the materials for when
a slot is removed was returning when the `material_index` attribute
didn't exist instead of continuing the loop over all drawings.

This issue was present both in `BKE_grease_pencil_material_remap`
and `BKE_grease_pencil_material_index_remove`
but `BKE_grease_pencil_material_remap` forced the `material_index`
attribute to be created, which meant that the early return
was never hit.

The fix fixes both issues:
* Continue instead of return.
* Don't create the `material_index` attribute in `BKE_grease_pencil_material_remap`
  if it doesn't exist.

Pull Request: https://projects.blender.org/blender/blender/pulls/129288
2024-10-21 14:11:11 +02:00
Jacques Lucke
cc202bbe1c Merge branch 'blender-v4.3-release' 2024-10-21 13:24:07 +02:00
Jacques Lucke
f729d98fa4 Fix #129269: can't load images packed into the .blend file
The issue only happened when compiling with clang which
apparently evaluated the parameters in a different order.

`IMB_steal_encoded_buffer` sets `ibuf->encoded_size` to 0.
2024-10-21 13:13:58 +02:00
Aras Pranckevicius
b0052aa821 ffmpeg: Support H.265 video output codec
Now can pick "H.265 / HEVC" in the video codec dropdown.

Implementation notes:
- Remap CRF value (which is for H.264) slightly to better match H.265
  CRF range (e.g. default Medium 23 -> 28).
- Set lossless mode via appropriate private param, and use 4:4:4 YUV
  format just like for some other video codecs when in lossless.
- Currently there are no built-in presets for H.265. Maybe later, especially
  if/when we'll add 10 bit or HDR videos.

Pull Request: https://projects.blender.org/blender/blender/pulls/129119
2024-10-20 10:27:33 +02:00
Falk David
d61c08453d Merge branch 'blender-v4.3-release' 2024-10-18 18:11:20 +02:00
Falk David
1906446716 Fix: GPv3: Newly added objects don't have the Use Lights setting set
The issue was that the code checked for the `OB_GPENCIL_LEGACY`
type instead of `OB_GREASE_PENCIL`.
2024-10-18 18:09:10 +02:00
Julian Eisel
041d3e4436 Fix: Missing version bump after previous release branch merge
3a708a27f9 and c8e75c03c3 include a version bump in the release branch.
The main branch should also get a version bump so the same versioning
code runs for files saved with main.
2024-10-18 14:47:01 +02:00
Julian Eisel
070a84580e Merge branch 'blender-v4.3-release' 2024-10-18 14:44:56 +02:00
Julian Eisel
c8e75c03c3 Grease Pencil: Enable available catalogs by default in asset shelf
In grease pencil draw mode, enable the Draw, Erase and Utilities
catalogs by default for the asset shelf, meaning they will show up as
tabs in the shelf. For grease pencil sculpt mode it's the Contrast,
Transform and Utilities mode (consistent with mesh sculpt mode).

This makes the assets of the corresponding types easily available, even
without requiring the "Filter Brushes by Tool" asset shelf option
enabled. It also makes the catalogs and the contained brushes more
discoverable as an organization helper.

These catalogs were added in 09bd5a5777.
2024-10-18 14:42:51 +02:00
Julian Eisel
3a708a27f9 Sculpt/Paint: Disable asset shelf filtering by tool by default
Disables the "Filter Brushes by Tool" toggle of the brush asset shelf
options by default.

After further feedback, we want to keep this option disabled by default.
It's useful to be able to access all brushes from the asset shelf,
regardless of what the active tool is. In many cases you'd see the asset
shelf with only one brush, which wastes space and isn't a good look
design quality wise. The following commit will also enable some more
asset catalogs by default which should be useful for filtering brushes,
and reduce the need for filtering by active tool.

So all things considered, while having this option is useful, it can
remain disabled by default.
2024-10-18 14:16:58 +02:00
John Kiril Swenson
d5d81c5078 VSE: Switch to box select default for timeline
PR #128051 made some improvements to code by cleaning up properties and
simplifying logic.

However, the default tool in most spaces is box select. By switching to
box select default, there should be more front-facing consistency across
spaces while still retaining near-identical behavior.

This patch would fix the small bug listed in #128671 while keeping the
simplified code benefits from #128051.

Also:
- Move selection keymap items up in the Sequencer (Global) keymap so it
  is more visible (similar to Node Editor ordering).
- Split `side_of_frame` property for ctrl press keymap item into a
  separate keymap item on ctrl click for both LCS and RCS to avoid
  clashing with ctrl+drag for box selects in RCS.

Pull Request: https://projects.blender.org/blender/blender/pulls/129028
2024-10-18 05:50:09 +02:00
Jesse Yurkovich
5c65ad4b1b Cleanup: use non-void return types for BKE_*_add functions
Many of the functions were already using proper types. This changes the
others still using `void *` to return their proper types directly.

Pull Request: https://projects.blender.org/blender/blender/pulls/128980
2024-10-17 21:05:18 +02:00
Falk David
649dfb8abc Refactor: GPv3: Use int3 for triangle data type
These were `uint3` before, but they should just be `int3`s.
Also uses `array_utils::copy_group_to_group` with new cpptype `int3`.

Pull Request: https://projects.blender.org/blender/blender/pulls/129166
2024-10-17 17:21:15 +02:00
Falk David
d68a79e084 Merge branch 'blender-v4.3-release' 2024-10-17 16:43:11 +02:00
Falk David
c539ea792c Fix: GPv3: Reduce draw tool performance regression
During the painting operation, the `GreasePencilDrawing` is updated in-place.
Previously, we simply tagged the whole drawing for a topology update.
This meant that the triangulation and curve normals were recomputed
for (pretty much) every new input sample.

Since the draw tool only creates one new stroke, we can copy the
triangulation of all the other strokes and only recompute the triangulation
of the newly drawn stroke(s).

First, a new `triangle_offsets_cache` is added that is lazily computed.
The computation for this should be pretty cheap.
Then, a new function `Drawing::tag_topology_changed(const IndexMask &curves_to_update)`
is added. This function takes an index mask of curves and only updates
their triangle cache. The cache for the other curves is copied.

In a test file with around 400k points, recomputing the triangle cache
(every input sample) took around 45ms. This meant that there was a noticable
drop in frame rate. With this patch, the time for each sample goes down to
less than 0.1ms. The frame rate feels much better.

But, drawing a longer and longer stroke still makes this time go up,
because the triangulation for the single stroke becomes more and
more expensive. This will have to be improved further.

Part of #124149.

Pull Request: https://projects.blender.org/blender/blender/pulls/129115
2024-10-17 15:28:44 +02:00
Jacques Lucke
8c13316f30 Merge branch 'blender-v4.3-release' 2024-10-17 13:17:31 +02:00
Jacques Lucke
1564e02a8f Fix #128994: crash when extracting point meshes
The domain interpolation can fail when e.g. converting from an
empty to a non-empty domain.
2024-10-17 13:15:54 +02:00
Damien Picard
9b78b8d1ed UI: Fix and improve a few messages
- "Export additional animationsThis feature..." -> Add period and
  newline to separate sentences.
- "name from laoded image" -> "Name from loaded image": typo.
- "Duplicate Active Keyframe (All Layer)" -> "All Layers": grammar.
- "%s is no directory" -> "%s is not a directory": grammar.
- "Can't ensure directory: %s" -> "Cannot", see HIG.
- "Duplicate active Frame(s)": title case.
- "Delete active keyframes of all layer" -> "... layers": grammar.
- "Grease Pencil group color tag": title case.
- "color tag": title case.
- "Bake all line art modifiers" -> "... Line Art...": title case for
  product name
- "... imported USD files.Export remaining..." -> "... imported USD
  files.\nExport remaining...": missing newline.
- "Premanently delete brush. This can't be undo." -> "Permanently
  delete brush. This cannot be undone.": typos.
- "Samplerate" -> "Sample Rate": use more correct two-word form.
- Decimate Keyframe operator: rename and rephrase a property to better
  reflect what it does.
  - "Remove" -> "Factor"
  - "The ratio of remaining keyframes after the operation" ->
    "The ratio of keyframes to remove"
- "Add a repository referencing an remote repository" -> "an": typo.
- "... unique within the Action.This is used..." -> "... unique within
  the Action.\nThis is used...": missing newline.
- "Threashold in screen space ... within this threashold " ->
  "Threshold in screen space ... within this threshold ": typo
- "... occluded by other faces (Slower performance)" -> ... (slower
  performance): no need for the capital here.
- "Indices must be sorted in acending order" -> "ascending": typo.
- "Enable the new Overlay code-base" -> "codebase": typo.
- "dectected by plane tracks" -> "detected": typo.
- "the same index can occure" -> "occur": typo.
- "Single element geometry..." -> "Single-element": spelling.
- "it can be quite inefficient to splitup large geometries" -> "split
  up": spelling.
- "If true, true gizmo is displayed..." -> "the gizmo": typo.

Some issues reported by Tamuna Mebonia.

Pull Request: https://projects.blender.org/blender/blender/pulls/129001
2024-10-16 19:05:48 +02:00
Bastien Montagne
e08b91f6be Merge branch 'blender-v4.3-release' 2024-10-16 16:46:53 +02:00
Bastien Montagne
d8ad7fa39d Fix (unreported) error in 'make_local' code of the PartialWriteContext.
Found while investigating solution for #128519.

Also added comment about usage of the `MAKE_LOCAL` option itself.
2024-10-16 16:45:55 +02:00
Pratik Borhade
ee0fd0ed19 Merge branch 'blender-v4.3-release' 2024-10-16 17:23:33 +05:30
Pratik Borhade
7c9023ca41 Fix #129023: GPv3: Deselecting vgroup elements fails in stroke domain
Instead of assigning `any_point_selected` to selection span elements,
pass `select` value if any point of that curve exists in vgroup.
Also renamed `any_point_selected`->`any_point_in_group`.

Pull Request: https://projects.blender.org/blender/blender/pulls/129035
2024-10-16 13:45:28 +02:00
Campbell Barton
363b2f31b6 Merge branch 'blender-v4.3-release' 2024-10-16 21:08:12 +11:00
Campbell Barton
cbce9fb26b Merge branch 'blender-v4.3-release' 2024-10-16 21:08:02 +11:00
Aras Pranckevicius
6a1301f4c7 Refactor: factor out ffmpeg CRF/rate setting into one function
Previously the code was scattered around in places and the logic
was hard to follow. CRF values will need more remapping done on them
for future codecs and/or 10/12 bit video support, so move all that logic
into set_quality_rate_options function that does three clear things:
1) set constant bit rate if that is used,
2) set lossless mode if that is used,
3) set CRF parameters if that is used.

Pull Request: https://projects.blender.org/blender/blender/pulls/129092
2024-10-16 10:43:55 +02:00
Pratik Borhade
ceea1a4d99 Fix #129024: GPv3: Renaming a vertex group removes group assignment
GPv3 stores the vertex group inside `CurvesGeometry`.
When the object level vertex group name is changed, we have to loop over
the vertex group list of each drawing. If a matching name is
found, copy the new name to the vertex group in `CurvesGeometry`. A separate
function is created to handle this: `BKE_grease_pencil_vgroup_name_update`.

Pull Request: https://projects.blender.org/blender/blender/pulls/129038
2024-10-16 10:27:09 +02:00
Christoph Lendenfeld
41a3e6c3bd Fix #125451: Duplicating bone doesn't copy pose bone colors
When duplicating a bone (has to be done in edit mode)
the pose bone colors were not copied.
This adds the code to do just that

This also fixes it for symmetrising because that uses the
same code path

Pull Request: https://projects.blender.org/blender/blender/pulls/129007
2024-10-16 09:26:48 +02:00
Campbell Barton
11dfa3297e Merge branch 'blender-v4.3-release' 2024-10-16 17:02:56 +11:00
Campbell Barton
ccb92947c5 Fix #129067: Transforming an edit-mesh crashes with cage editing
Regression in [0] although prior to this the `deformed_only` was not
being set, caused by a separate regression.

[0]: 80fa49f24ae768c5869065363e116b51175fb2df
2024-10-16 16:57:06 +11:00
Aras Pranckevicius
db4d8d1046 Fix: Video CRF being reset when switching to AV1 codec
Two issues were present in code that was resetting CRF quality level
to "do not use CRF, use bitrate settings" mode:

- It did not include AV1 codec, so whenever you switched to AV1 the CRF
  was changing to constant bitrate.
- It wrongly included DNxHD codec. That seemed like it was trying to
  fix #100079 in 06a01168f6, but it was doing exactly the opposite
  of what a fix should have been? I don't understand it :/ In any case,
  now with DNxHD removed the CRF properly switches to constant bitrate
  when changing codec to DNxHD.

Factored the actual logic into BKE_ffmpeg_codec_supports_crf function.

Pull Request: https://projects.blender.org/blender/blender/pulls/129050
2024-10-16 05:48:51 +02:00
Sybren A. Stüvel
399c2148c3 Cleanup: run make format
No functional changes.
2024-10-15 15:12:42 -07:00