What's new in this version:
Animation & Rigging Module:
- Setting key shortcuts from the "Insert Keyframe" menu is now supported
- F2 now also works for renaming markers. The old Ctrl+M key has been changed to F2, to match renaming of objects and NLA strips (see below).
- Markers are easier to select, with new operators to select all of them, or left/right of the current frame (including the current frame, if it's on a marker).
- Discontinuityer is now available in the Dope Sheet as well. As in the graph editor, it still requires the animation channels (the FCurves) themselves to be selected.
- Equalize Handles now can change the handle types, so that it always performs its job.
- The proxy system has been fully removed, see the Core release notes for details.
- F2 now works for renaming NLA strips.
- Strip extrapolation modes "Hold" and "Hold Forward" will remain as set. Blender used to change these settings, only allowing "Hold" for the very first NLA strip, changing it without notice to "Hold Forward" whenever an animator would change the strip order and put another one in front. This behaviour has been removed, and the settings will stay at the values set by the animator.
- Bake Action is available from the Edit menu.
- Action influence is now copied to the Strip influence when pushing down to the NLA.
- An alternative Tweak mode is now available, Start Tweaking Strip Actions (Full Stack). The old behavior can be found using Start Tweaking Strip Actions (Lower Stack) and remains the default for the TAB hotkey. This new mode allows animators to enter tweak mode without disabling all the tracks above the tweaked strip, effectively animators will see the "Full Stack". Keyframing will work as expected, preserving the pose that you visually keyed. There are some limitations, so make sure to read the commit message.
- When adding Motion Paths you can now select more sensible frame ranges,
ther than simply defaulting 1-250:
- Scene Frame Range
- Selected Keyframes
- All Keyframes
- The scene range operator was removed, because the operators now automatically find the range when baking the motion paths.
Deprecation of Legacy Pose Library:
- The legacy Pose Library (Blender 2.93 and older) has been marked as deprecatedand rB81b55d79). The panel and its operators will be removed from Blender 3.3, along with the internal code supporting the functionality. The panel gained some explanation about this, a button that opens the manual at the relevant chapter, and a button to convert legacy pose libraries into modern pose assets.
- Proxies have been deprecated since Blender 3.0, but their internal evaluation/management code was still there, and it was still possible to keep using existing proxies defined in older versions of Blender.
- They have now been fully removed. Existing proxies are converted to library overrides as best as possible.
- For more details, please see the relevant task.
- Overridden properties are now editable in the 'Override' view, 'Properties' view mode of the Outliner.
- The 'override hierarchy' concept (for example, an override of a full character is an override hierarchy, which include the root collection, all of its sub-collections, objects, etc.) has become much more important. It helps data-block relationships sane, especially when re-syncing after the reference library data has changed.
- Most overrides created as part of a hierarchy are no more editable by default, but can be made editable from the Outliner contextual menu (more ways to do so are being worked on).
- The UI for Library Overrides in the Outliner was reworked.
The Library Overrides display mode now allows selecting between two view modes:
Properties: Displays all properties changed through library overrides, together with buttons to edit the value(s) of each property. This is an improved version of the previous display mode.
Hierarchies: Display the hierarchical al relationships between overridden data-blocks. For example to override a mesh of an object inside a collection, Blender automatically overrides the entire collection -> object -> mesh hierarchy. A column on the right allows enabling/disabling overrides. Disabling an override will revert all overridden properties.
- Other display modes no longer list library overrides. Now that there is an improved display mode dedicated to library overrides, this isn't really needed anymore.
- Performances of library override resync process were greatly improved (over ten times faster, depending on the file),
- Fixed dead-lock in movie cache
- New Set Parent option, Object (Keep Transform Without Inverse), and Apply option, Parent Inverse rBdb628787. The operators preserve the child's world transform without using the parent inverse matrix. Effectively, we set the child's origin to the parent. When the child has an identity local transform, then the child is world-space aligned with its parent (scale excluded).
- Bump node without Height plugged in is now optimized into a complete no-op like in Cycles to support the old workaround for defaulting a node group input to normal.
- Shader compilation progress was moved to the viewport engine info display. It is now a shader count instead of a progress percentage.
- Sub-Surface Scattering radius socket input is now treated as a mean radius instead of a scaling factor for the pre-computed SSS kernel (which still uses the socket default value). Manual patching of existing scene may be required.
- Materials using Shader-To-RGB nodes now never receive Screen Space Reflections or Sub-Surface Scattering effects even if the BSDFs are not connected to the Shader-To-RGB nodes.
- Displacement bump now also affects Image texture node's box projection mode.& T97916)
- Improved smooth algorithm.
- Scale Stroke Thickness is now visible in Pie menu.
Modifiers and VFX:
New modifier: Envelope (cee6af0056)
Dot Dash modifier:
- Lowered the bounds limits for dash and gap
- New option to use Cyclic per segment
Smooth Modifier: New option to keep the overall shape closer to the original, avoiding the strokes to shrink
- New Additive mode.
- Adds fade support (c4e4924096)
- Adds origin object for the building process (c4e4924096)
- Added a cache to speed up Grease Pencil object evaluation. This is currently used only for drawing strokes and sculpting using some brushes like the push brush.
- Improve multi-user Grease Pencil data performance with modifiers. (7ca13eef7c)
- Grease Pencil edit mode overlays now support the clipping region. (69a43069e8)
Curve Pen Tool:
- A new "Curve Pen" tool in curve edit mode can be used to rapidly edit and create curves (336082acba).
- The tool supports quickly adding, deleting, and tweaking control points.
- Much more functionality is available with various shortcuts, and editable in the keymap for further customization.
Multi-User Data Object:
- When trying to apply a modifier to a multi-user data object users can choose to make it single user, instead of failing to apply (35f34a3cf8).
- For applying object transform the new option allows to isolate the selected multi-user data objects from the others if needed.
- The "Select Similar" operator for Meshes now supports selecting by similar vertex crease values.
- NURBS curves knots generation has been improved (0602852860).
- "Cyclic" can be used with other knot options.
- "Endpoint" and "Bezier" can be used at the same time.
- The Vertex Weight Mix modifier now supports Minimum and Maximum as operations that can be applied to combine input weights (fa715a158a).
- Many curve nodes have been ported to a new data-block, which significantly improves performance with many curves.
- Updating the Endpoint Selection node resulted in an observed 13x performance improvement combined with the Set Position node.
- The Mesh to Curve node has improved performance, with 10x improvements possible when many curves are created.
- The Curve to Mesh node can be 4-5x faster for inputs with millions of curves (7484f274dc).
- The performance of the Resample Curves improved by roughly 6x when sampling many small poly curves (60a6fbf5b5).
- Updating the Realize Instances improves its performance by 2-3x, especially with many small curves (6c6f591f90).
- A complete list of the updated nodes can be found here.
- Many function nodes with more inputs like Map Range, Combine XYZ, and Random Value are 2-4x faster in common cases (ae94e36cfb).
- Selection inputs are now faster in general as the field system can prepare the data for nodes more efficiently.
- In a simple test with the set position node, the improvement to runtime was 1.4x with 10% of points selected, and 2.5x with 90% of points selected.
- Simple functions with a single input and output in a field network like data-type conversion can be around twice as fast in some cases (67c42e7f03).
- Writing to vertex groups inside nodes and directly with a modifier output attribute can be 3.6x faster (610ec34c1f).
- Values of zero are not written to the group anymore.
- The Mesh Line primitive was parallelized with an observed 4x performance improvement.
- A small optimization to the UV Sphere node made it 1% faster.
- The Duplicate Elements can duplicate points, edges, faces, instances, and curves.
- Updating the node to use the new curves data-block improved performance by up to 150x (663bd38ed6).
- Geometry nodes has better support for byte colors, to work better with the changes in sculpt mode (b9799dfb8a).
- The Store Named Attribute node can write byte colors directly.
- The "Convert Attribute" operator can convert to/from byte colors.
- Various systems like implicit conversions and mixing byte colors work in all nodes.
- Byte colors are displayed as integers (0-255) in the spreadsheet.
- Adding a new Geometry Nodes modifier from the modifier panel doesn't automatically populate it with a new node tree anymore (08b4b657b6).
- It's now possible to specify a default name for modifier attribute inputs and outputs, used whenever creating assigning a node group to an empty modifier (0ad73bb965).
- Nodes to deal with attribute names directly are back! 3e7ee3f3bc)
- The Store Named Attribute node can create attributes with any namecomputed with string nodes).
- The Remove Named Attribute node removes any attribute, which can be helpful as a performance improvement
- The Named Attribute input node retrieves an attribute with a name for use in a field.
- The input node supports attribute search, which automatically sets its output type
- Attribute names used in node groups are visualized externally
- A new "Internal Dependencies" modifier panel shows all attribute names used by the modifier
- A node editor overlay shows attribute names used by names and node groups
- The Face is Planar nodes can tell when the triangles of an N-Gon don't lie on the same plane
- The Merge by Distance node now has a "Connected" mode like the weld modifier, which can be much faster
- The behavior when writing directly to the position, handle_right, and handle_left attributes has been simplified, removing the edit-mode-like logic affecting handles
- The Set Position and Set Handle Position nodes still have the more complex behavior
Legacy Geometry Nodes:
- Most nodes from 2.93, before the fields system was introduced, have been removed
- This means that as of 3.2, geometry nodes files are not backwards compatible with files using legacy nodes. Versions 3.1 and 3.0 can be used to port files to the new system.
- This change can speed up development and remove the maintenance burden of supporting the set of legacy nodes
- The readability of node link selections has been improved
- The entire link is highlighted when a connected node is selected
- Selected links are displayed on top, so they are always clearly visible
- Selected links are not faded when the sockets they are connected to are out out view
- Dragged links still get a partial highlight when they are only attached to one socket
- The look of the soft shadow behind nodes has been improved for extreme zoom levels and high resolution displays
- The dot grid background has been improved to be more visually consistent with the zoom level
- There have been small improvements to the look of the reroute node
- Curved node links always attach horizontally to the reroute node to avoid breaking the visual flow
- The label of the reroute node is now center aligned
- When creating node groups, hidden links are removed, to avoid making unused input and output sockets
Pipeline, Assets, IO:
Asset System & Asset Browser:
- Collection assets are now supported
- An automatic preview image is generated when using Mark as Asset
- Collection instancing can be toggled in the Adjust Last Operation panel after dropping to the 3D View
- Ability to drag materials (from Asset Browser for example) to Material slots in Properties editor
Wavefront Obj I/O:
- New experimental OBJ importer
- The new importer is written in C++ and is much faster than the Python importer, while
ing less memory as well. Import time comparisons on several large scenes:
- Blender now has support for the WebP image format which works similar to PNG but compresses faster and generates smaller file sizes
- Improved error message when monitors are connected to multiple adapters
- Faster blender launch when there are disconnected network shares
- Python exceptions from the text editor are now displayed in the info-space (as well as the console)..
- Soft keywords are now syntax highlighted
- Context.temp_override has been added to support temporarily setting the context which can be useful after loading a file (for example) where the context is cleared making many operators fail to run.
- Context.path_resolve now supports resolving attributes such as "active_object", "scene" ... etc. Expressions such as context.path_resolve("active_object.modifiers.name") now work as expected
- Text.region_from_string & Text.region_as_string methods can be used to get and set the selection, optionally passing in the region to access..
- mathutils.Color gained methods to convert between the scene linear color space and sRGB, CIE XYZ, ACES and Linear Rec.709. Most values returned by Blender APIs are in scene linear color space, with the notable exception of user interface theming colors which are in sRGB.
- Persistent handlers in bpy.app.handlers can now use methods from a class
- XrActionMapItem.user_paths collection property replaces XrActionMapItem.user_path0/user_path1. Similarly, XrActionMapBinding.component_paths collection property replaces XrActionMapBinding.component_path0/component_path1. This allows XR actions to have a variable amount of bindings instead of being limited to 2 per action.
- gpu.shader.code_from_builtin it is no longer compatible with Blender's internal gpu module and had to be removed.
- The MeshVertex.normal property is now read-only, which prevents confusion due to the way vertex normals are calculated on-demand
- Tweak events have been removed from KeyMapItem.type., EVT_TWEAK_M, EVT_TWEAK_R)
- Instead of special types, regular mouse button types should be used (LEFTMOUSE, MIDDLEMOUSE, RIGHTMOUSE) with the KeyMapItem.value set to CLICK_DRAG. Directional dragging can be specified by setting KeyMapItem.direction.
- The value of motion events (MOUSEMOVE, INBETWEEN_MOUSEMOVE) is now always NOTHING, instead of the previous PRESS / RELEASE event's value
- Sequence properties frame_still_start and frame_still_end have been removed. Same functionality can be now achieved by setting negative frame_offset_start or frame_offset_end
- Adding a new Geometry Nodes modifier doesn't automatically populate it with a new node tree anymore
- The primitive drawing types 'LINE_LOOP' and 'TRI_FAN' used in GPUBatch have been deprecated as they will be removed in future releases.
- Passing the context to operators as a dictionary) has been deprecated as part of the inclusion of Context.temp_override which should be used instead.
- Deprecated API
- New API
- Mesh.vertex_colors is deprecated and will be removed in a future release. The new sculpt paint tools can now create color attributes, found in Mesh.attributes with type BYTE_COLOR and FLOAT_COLOR. Importers and exporters are recommended to support both types of color attributes, and attributes in general.
- Different from the old vertex colors, color attribute values are in scene linear color space instead of sRGB color space. For file formats that require sRGB colors, mathutils.Color.from_scene_linear_to_srgb can perform the conversion.
Blender 3.2: Cycles:
AMD GPU Rendering:
- AMD GPU Rendering for Linux has been enabled. Like Windows, this is supported for RDNA and RDNA2 generation discrete graphics cards, which includes Radeon RX 5000 and RX 6000 series, and Radeon Pro W6000 series GPUs.
- This currently requires the 22.10 Linux driver from the AMD Radeon repository.
- For RDNA1 cards, the drivers have a known bug rendering image textures with certain resolutions, where the width is not a multiple of 128. We recommend using typical texture resolutions like 128, 256, 512, 1024, 2048, 4096 as a workaround, until the driver bug is fixed.
- Support different color management settings for render output than viewport display. Animation rendering, compositing file output nodes and image saving now have options to override the scene color management settings. For linear file formats like OpenEXR, a different linear color space can be chosen, for example to export ACES OpenEXR files. For other file formats a different display, view transform and look can be provided, for example to create a compositing nodes to output images for multiple display targets.
- OpenColorIO color space aliases support, to create backwards compatible configurations
- Linear ACEScg color space added to the configuration, for more easily handling OpenEXR files with the ACEScg color space
- Support for Light Groups, a type of pass that only contains lighting from a subset of light sources
- This can be used in order to e.g. modify the color and/or intensity of light sources in the compositor without re-rendering.
- Support for selective rendering of caustics in shadows of refractive objects.
- Example uses are rendering of underwater caustics and eye caustics.
- This is based on "Manifold Next Event Estimation", a method developed for production rendering. The idea is to selectively enable shadow caustics on a few objects in the scene where they have a big visual impact, without impacting render performance for the rest of the scene.
Note this method has a number of limitations:
- Only caustics in shadows of refractive objects work, which means no caustics from reflection or caustics that fall outside shadows. Only up to 4 refractive caustic bounces are supported.
- Caustic caster objects should have smooth normals. Bump and normal maps are ignored.
- Not currently supported for Metal GPU rendering.
- In the future this method may be extended for more general caustics.
Volume Motion Blur:
- Motion blur for gas simulations and imported VDB volumes is now supported. For this, the volumes must have a velocity field, defined either as a vector grid, or as a triplet of scalar grids for the X, Y, and Z components of the vector field. For volume objects, a parameter is available to set the velocity grid's name.
- If there is no vector grid matching the velocity grid name, the name will be used to try and find grids with the name ending either with x|y|z, or .x|.y|.z, or _x|_y|_z. For example, if the base name is velocity, then any group of 3 scalar grids named either velocityx, velocityy, and velocityz, or velocity.x, velocity.y, and velocity.z, or velocity_x, velocity_y, and velocity_z will be merged into a vector grid at render time and used for motion blur.
- For imported volumes, an option to set the unit of time in which the velocity vectors are expressed is available. Some software may export velocities scaled to seconds (SECOND) or scaled to the simulation frame time (FRAME). If it is not known what the unit of time is, and if motion blur appears too strong, then FRAME might need to be used, or if it does not seem to have any effect, then this might need to set to SECOND.
- Support using Adaptive Sampling together with Scrambling Distance
Shader Nodes: add Alpha output to Object Info node
- Automatically unpause viewport when switching to rendered mode
- The Alembic procedural is now enabled for final renders
- Baking to UDIM tiles is now supported
Sculpt, Paint, Texture:
- Vertex colors have been refactored into generic color attributes.
- Color Attributes in UI
- Color attributes support both 8-bit byte and 32-bit floating point colors and can be stored in Vertex or Face Corner domains. The default is using Vertex -> Color setting, to reduce file sizes, RAM usage and improve color quality.
- Creating a new Color Attribute
- "Vertex color" was renamed to "Color Attribute" in various placesrB07b10638).
Painting in Sculpt Mode:
- Color attributes can be painted inside vertex paint mode or in sculpt mode using the new sculpt paint tools.
- Painting tools in Sculpt mode have advantages like masking options, face sets/masks support and faster performance. They will serve as a base for future painting improvements and modes.
- Vertex paint mode has been ported to support painting color attributes..
- Using painting tools in solid view switches viewport shading color to “Attribute”.
- This ensures that the color attributes are visible when painting, without making the visualisation mandatory in sculpt mode.
- Paint Brush - default brush for painting color attributes.
- Holding Shift key switches Paint brush to Blur.
- Can modulate wet paint effect for color smudging.
- Includes extra sliders to control the tip roundness and width
- Flow and Density also control how much color is applied during the stroke
- Showcase of different brush presets from the demo file
- Smear Brush - brush for smearing color attributes
- Has various deformation modes.
- Smear brush deformation modes
Color Filter - tool for modifying existing colors. Filter operations include:
- Color filter modes
- Mask By Color - tool for creating masks from the active color attribute
- Making a mask from a color
- Edit Voxel Size operator now displays units properly
- Voxel Remesh default settings have been changed
- Voxel Remesher supports color attributes
- Color attributes, face sets and masks are now being preserved
- 'Fix poles' is for now disabled to drastically increase remeshing speed
- The "Use Snap" option is no longer shared between different types of editors (3D View, UV, Sequencer and Node)
- Drag and Drop
- Dragging preview thumbnails from the File Browser and Asset Browser doesn't require clicking exactly on the preview image anymore. (Almost) the entire tile can be used to start dragging now
- It is now possible to drag materials (from Asset Browser for example) to Material Properties slots
- File Browser search now works correctly with descriptive font names
- Editor Management
- Duplicated windows using corner Actions Zones are now immediately activated.
- The "Swap Areas" operator (when used from corner action zones) can work between separate Windows
- Windows OS
- Proper handling of Full Width numbers while in Chinese IME character entry
- OneDrive link added to File Browser "System" list
- Improved numerical entry when using Chinese language
- Support for font file formats "Woff" and "Woff2"
- Adjustments to the Quick Setup screen to fit contents better, especially with High DPI monitors
- Clicking in object mode won't cycle selection on first click
- Support maintaining orthographic views when rolling 90/-90 degrees
- 3D Mouse / NDOF
- 90/-90 degree rotation is used for roll buttons
- N2D style pan & zoom is not optionally supported in the camera view instead of leaving the camera view
- Correction to font size of Side Bar tab text
- Objects that use the "Curve" data type in the Outliner will be displayed using their respective sub-type icon (curve, surface or font icon)
VFX & Video:
- Add filter method to strip transform
- Use float for transformation offset
- Now it is possible to create a new scene base on the active strip. The new scene is assigned to the active strip.
- Add channel headers - provides ability to assign label and per channel mute / lock buttons.
- Enable edge panning for transform operator - when dragging strip out of view, it pans the view.
- Better handling of animation when transforming strips, transforming no longer extends selection
- Add frame selected operator for preview
- Thumbnail for first image now represents handle position
- Add option to limit timeline view height
- Add Combine and Separate XYZ Nodes
- Fix tilt/scale slider of marker jumping on initial mouse grab
- Fix for tilt/scale slider to follow mouse exactly
- Fixes very slow tracking with keyframe pattern matching when movie does not fit into cache
Object Extras / Object Type Visibility:
- Object extras such as image-empties can now be shown in the VR viewport/headset display. Being able to see reference images in VR can be useful for architectural walkthroughs and 3D modeling applications.
- Since users may not want to see all object extras (lights, cameras, etc.), per-object-type visibility settings are also newly available as session options
- Xr object type visibility.png
Other Changes & Additions:
- New Camera Landmark from Session operator for VR landmarks that creates a new camera and Custom Object-type landmark from the current VR headset pose
- Support for HTC Vive Focus 3 controllers
- Adjusted the switchable parent rig so that disabling Local Location on IK controls aligns location channels to world as intended. Added an IK Local Location option to limbs (on by default for backward compatibility) and disabled it in metarigs.
- Support for camera DoF focus distance was added, including animation, for both import and export
- Imported animations of rigs now have their FCurves properly grouped by bones
- An option to triangulate geometry has been added to the exporter
- An option to only export visible objects has been added to the exporter
- Imported animations of rigs now have their FCurves properly grouped by bones
glTF 2.0 I/O:
- Huge refactoring (better hierarchy / collection / instances management)
- Use rest pose for armature when 'use current frame' is off
- Add glTF settings node in shader menu
- Export armature without skined mesh as skin in glTF files
- Normalize skin weights also for all influence mode
- Manage active UVMap correclty, when there is no UVMap used in node tree
- Manage skinning when some vertices are not weights at all
- Armature exports all actions rBA787ea78, rBAa0ce684)
- Add various hooks rBA8653db3, rBAfef8f1f)
- Remove back compatibility of export_selection -> use_selection
- Weight min threshold for skinning
- Option to optimize animation size off by default
- Manage use_nla option to avoid exporting merged animations
Performance : better way to detect weird images
- Fix PBR values when emission node is used
- Fix transmission export
- Fix bone export when Yup is off
- Fix active scene export + option to use only active scene
- No texture export when original can't be retrieved
- Use color attribute API instead of vertex color
- Fix when glTF file has no scene
- More animation hooks for user extensions
Dynamic Brush Menus:
- Fix and consistently support symmetry menus for all painting modes
- Fix brushes menu not displaying fully in sculpt mode
- An option to enable/disable the QCD 3D Viewport header widget has been added to the preferences
- Node Wrangler now handles attributes