This patch removes the properties that were marked as deprecated in the
4.x series and was planned for removal in 5.0. Some DNA members were
marked as deprecated or removed in correspondence with this change.
Pull Request: https://projects.blender.org/blender/blender/pulls/140355
This enables the new .blend file format as described in #129309 and implemented
in 6a90382390 by default. This allows storing
blocks larger then 2GB inside the file. This is a necessary requirement to be
able to store e.g. meshes with more than a few hundred million vertices.
There is a new debug option that can be used to force Blender to write the older
file format. This is especially useful when using tools that have not been
updated to be able to read the new format yet.
Compatibility:
* Blender 4.5 is able to read the new format for a few months already, so 4.5
LTS will be able to read these files
(6a90382390).
* The internal `blendfile.py` which is used by `blend2json.py` has been updated
(d83bfee347).
* blender-asset-tracer (BAT) has been updated
(blender/blender-asset-tracer@f1ee7980b2).
* `blend_render_info.py` will be updated soon (#140341).
Pull Request: https://projects.blender.org/blender/blender/pulls/140343
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
Changes `MultiresDisplacementData` to use a `blender::Array` instead of
a manually allocated pointer to allow for using `Span`s and avoid
further manual memory management.
Note that `MultiresDisplacementData` is already handled via C++ style
`new` & `delete` and does not need to be converted as a prerequisite.
Pull Request: https://projects.blender.org/blender/blender/pulls/140328
* Uses references where possible
* Adds const where appropriate
This commit only modifies the internal methods, and does not touch any
of the function signatures or areas that interface with other parts of
the codebase.
Pull Request: https://projects.blender.org/blender/blender/pulls/140326
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
`seq_need_scale_to_render_size` returned true, when scaling was not
needed. The code that used this function worked correctly, so the logic
was inverted in both places.
Clarify the terms for NDOF translation & rotation sensitivity.
Previously translation was named: "ndof_sensitivity" making it
sound like it would control rotation as well.
- 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.
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 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
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
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.
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
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
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
- 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