Blender 5.0: Modeling & UV¶
Modeling¶
Modifiers¶
There are six new Geometry Nodes based modifiers. (8ba63262bf)
- Array: Distributes the object along a line, circle, curve or with a custom transform. Also
supports gizmos and randomization. The legacy array modifier is still available for now.
- Scatter on Surface: Instances other objects on the surface. It features density as well as
amount based sampling. The distribution can be controlled with an attribute and an image texture.
Multiple of these modifiers can be chained to scatter different objects with different
distributions.
- Instance on Elements: Creates instances on points, edges, faces or face corners.
- Randomize Instances: Adds additional randomization to instances created by other modifiers.
- Curve to Tube: Creates a cylindrical mesh (or any custom shape) from a curve. It also
supports round caps and generates a UV map.
- Geometry Input: Can be used at the beginning of the modifier stack to copy the final geometry of
another object.
Other changes to existing modifiers:
- Boolean Operation Solver label has been renamed from "Fast" to "Float" to better reflect its functionality. This change is applied consistently across the edit mode boolean operator, boolean modifier stack, and Python API. (PR#141686)
- "Implicit sharing" is used for the storage of modifier bind data, significantly improving undo performance and decreasing memory usage (a08cd68f1e).
Attributes¶
- Freestyle edge and face tags are now stored as generic attributes,
with the names
freestyle_edgeandfreestyle_face. The attributes will be propagated like all other boolean attributes. Theuse_freestyle_markproperties for this data on Mesh elements are removed; the attribute API should be used instead (b20ecee555).Meshis not yet affected by this change. - For curves, Grease Pencil, and point clouds, attributes no longer have a name length limit. Also, for Python API users, attribute references are no longer invalidated when adding or removing others (68759af516, fa03c53d4a).
Curves¶
- A new "Curve Data" panel in edit mode allows tweaking built-in curve attribute values (c59a1aedbf).
Lattice¶
- New operator: "Lattice Deform Selected" accessible from the add menu. This adds a new lattice that deforms selected objects, by default the lattice is fitted to the selection bounds and oriented to match the active object. (c2319f8293).
Mesh¶
-
Improve "Merge by Distance" behavior
- Use a deterministic method of selecting the target vertex, picking the center-most vertex of a cluster with the lowest index as a tie breaker. (69e27b4855).
- A new "Centroid" option moves vertices to the average location of all merged vertices (enabled by default). (93cc17dd72).
- "Auto Merge" support for Symmetrize & Bevel operators (d0740846f4), (a584197ab3).
UV¶
-
UV Selection Improvements
-
Sync selection is now capable of selecting individual UV coordinates without having to select all UV's connected to a vertex.
Common selection operations in the 3D viewport such as picking/box/lasso/circle select maintain the UV selection however some selection operations such as select-random will reset the UV selection, causing all UV's connected to selected vertices to become selected.
Sync selection is now enabled by default. (62d72bd0b5).
- Use a shared selection for all UV maps, removing the per UV-map selection. When loading older files only the selection from the active UV-map is preserved. (f4308aa2d0).
- Undo now stores UV selection settings such as UV select mode, sticky and sync-select. (37382b7c39),
-
- Add pack to custom region option to "Pack Islands" operator (a9a54c88b9).
- Add Minimum and Maximum to Align Vertically/Horizontally (9f28549fd4)
- Add "Arrange and align selected UV islands" operator (f7f4c154b6)
- Add "Move Selected UV's on Axis" operator, accessible via num-pad keys (cfad6f4f25)
- Convert the "Copy Mirror UV Coordinates" operator from Python to C++ (919acbbf7f)
Python API / Compatibility Changes¶
- UV Sculpt
strength_curveandcurve_presetproperties have been renamed tocurve_distance_falloffandcurve_distance_falloff_preset(0a72429ea8).