The BMesh python API was fully broken by this commit.
While the fix seems to be reasonably simple, it is safer for now to revert
the faulty commit, as the breakage is fairly impactful for people using 4.5
and/or 5.0 daily builds.
This reverts commit bd3a66a416.
- Removes asserts where polygon shaders are used to draw lines and
points. This is incorrect and leads to asserts in Vulkan.
- Kept as close to the existing control flow. Didn't want to introduce
regressions as this PR lands in 4.5
Pull Request: https://projects.blender.org/blender/blender/pulls/140337
Nodes code uses direct access to enum property values definition
(outside of the RNA API) to generate UI (translated) messages, this is
risky/messy since the i18n context potentailly defined for the actual
RNA property is not available in these cases.
A few reports used string formatting in a way which made translation
awkward, by splitting the message into several individually translated
submessages, instead of just one message with formatting markers.
Pull Request: https://projects.blender.org/blender/blender/pulls/139895
Fix a crash in the inbetweener (and other similar tools) when bones have
custom properties, but no system properties. It just needed another
`nullptr` check.
Pull Request: https://projects.blender.org/blender/blender/pulls/140455
When initially saving a file, we would now always create a catalog
definition file that would be writted to disk on file save. This
shouldn't be done if there are no new catalogs to write.
The `General` settings layout can be disabled by unchecking `use_custom_props`,
an since this button button is within this layout it can't be activated back.
NOTE: See that the button can be activated back if the checkbox is still
hovered after being unchecked, if the mouse moves out it can't be enabled back.
Pull Request: https://projects.blender.org/blender/blender/pulls/140228
Auto normalization used to not work on assign/remove vertex group
operator, this was due to `BKE_object_defgroup_validmap_get` and
`vgroup_parray_alloc` did not handle grease pencil type objects. Now
added grease pencil cases in them and auto normalization works as
expected.
Pull Request: https://projects.blender.org/blender/blender/pulls/139912
If view items button is active, call `ui_layout_list_set_labels_active` to
set the `SELECT` flag on label button. Due to this flag being set, text_sel theme
color is copied to `wcol.text` (see `UI_SELECT` condition in `widget_state()`).
This `wcol.text` is later used inside `widget_draw_text()` for text color.
Pull Request: https://projects.blender.org/blender/blender/pulls/140330
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
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
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.
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.
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
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
It is possible for a mesh to change topology across frames but still be
detected as not needing a topology update.
Until we can make a finer-grained check against the before and after
topology, unconditionally ensure it's updated for now.
Adds a new test that checks a few frames of changing topology that is
similar, but not the same.
Pull Request: https://projects.blender.org/blender/blender/pulls/140253
The curve interpolation operator write uninitialized data to vertex
attributes if there is more than one interpolated curve pair.
This is because _partial writes_ to `VArraySpan` wrappers only work
if the original VArray is already a span or if the wrapper span is
fully initialized with the original data beforehand.
In the case of the curve interpolation tool for Grease Pencil the
interpolation is invoked for each curve pair separately, creating a
new output attribute `VArraySpan` wrapper each time. This wrapper
is only filled for the curve pair in question and writes uninitialized
data to all the other curves' vertex weight attributes.
To prevent this from happening the simple solution is to use
`lookup_or_add_for_write_span` which initializes the entire span.
This causes quite a lot of unnecessary copying, but that is acceptable
for the Grease Pencil interpolation tool. The alternative is to change
the tool so that the destination GSpanAttributeWriter is only created
once, but that is a much bigger change.
Pull Request: https://projects.blender.org/blender/blender/pulls/140283
This assert added by 321ec72c74 notes that changing the mesh
wrapper type from subdivision to normal mesh data just discards the
potentially-subdivided geometry and doesn't make sense, and possibly
breaks other assumptions.
This wrapper type change was done years ago by 0f89bcdbeb to
fix issues with shared object data during evaluation. It noted that
the mesh drawing data extraction didn't handle BMesh wrappers correctly
when the object isn't in edit mode, but that doesn't seem to be the
case after two trivial changes. The other bugs mentioned by that commit
are still solved after this change.
Pull Request: https://projects.blender.org/blender/blender/pulls/140290
This PR moves back the wireframe slider option back to the
bones overlay popover. It is only showed in paint weight mode
and only active if in wireframe mode.
It was concluded that this feature should be revisited to maybe
cover all shading modes in the future. But for now it is safer
for 4.5 to limit it to the weightpaint mode.
Pull Request: https://projects.blender.org/blender/blender/pulls/140276
This reverts commit 283ae193d9.
It causes issues because the deselection happens regardless of
properties actually getting keyed, meaning
i.e. setting interpolation modes was no longer possible
This was a case of missing relation tagging update.
The update was functional only after something else
tagged relations.
The relation update needed to be added in both the
Image texture node RNA function (for manually changed
images) and in the add painting slot operator.
Pull Request: https://projects.blender.org/blender/blender/pulls/140270
In several cases synchronization issues around discarded resources could lead
to crashes. These crashes where more prominent on NVIDIA as they reuse
their handles more often.
This PR requires external synchronization when data is moved from a
discard pool to the main orphaned data discard pool. Also the device
timeline should be guarded by the same mutex.
Pull Request: https://projects.blender.org/blender/blender/pulls/140274
The transition to `AttributeStorage` requires the active and default
UV map status to be stored separately, since currently they're
stored as flags on `CustomDataLayer`. This commit adds forward
compatible reading for when the status is written as attribute names
on `Mesh` instead, which is what we already do for color attributes.
Pull Request: https://projects.blender.org/blender/blender/pulls/140134
When recursively modifying a property via the Outliner while holding Shift,
only the property that was actually clicked got keyed.
With this fix, the clicked property gets keyed twice. Once with the added call,
and once in the ui button code. This shouldn't be a performance concern though.
Pull Request: https://projects.blender.org/blender/blender/pulls/140131
A video written as 8 bit per channel uses blenders internal byte
buffer directly, which has straight/unpremultiplied/unassociated alpha.
Any other bit depth is converted from the float buffer, which has
premultiplied/associated alpha. This discrepancy was not taken into
account, and is now converted for formats which support alpha and
more than 8 bits per channel (which is only prores and ffv1).
Pull Request: https://projects.blender.org/blender/blender/pulls/139953
We added descriptor buffers to 4.5 as it contains some core API changes.
However there have been various reports that the system isn't fully
mature resulting in lower performance especially on NVIDIA GPUs.
This PR will disable descriptor buffer feature for NVIDIA GPUs.
Pull Request: https://projects.blender.org/blender/blender/pulls/140263