Blender SURVEY Results! - Blender Today LIVE #259
Changelog between May 13, 2025 - May 27, 2025 at 12h
445 commits in total, of which 70 are fixes and 84 cleanup.
Anim
- 🔸 Anim: Add "replace" mix mode to the Action Constraint - Nathan Vegdahl
- 🔸 Anim: support per-bone "Display As" overrides - Aras Pranckevicius
- 🔸 Anim: Add more modes to Select Grouped in pose mode - Christoph Lendenfeld
- Anim: Use bone_is_visible_... functions - Christoph Lendenfeld
- 🔸 Anim: Common Playhead snapping for all editors - Christoph Lendenfeld
Assets
- 🔸 Assets: Enable asset metadata operators for brush shelf context menu - Sean Kim
- 🔸 Assets: Create Asset thumbnails via a screenshot anywhere in Blender - Christoph Lendenfeld
Attributes
BKE
BLI_array_store
- BLI_array_store: support run-length encoding / decoding - Campbell Barton
Build
- Build: expand Visual Studio natvis file - Aras Pranckevicius
- Build: Upgrade Embree library to release v4.4.0 - Nikita Sirgienko
- Build: Avoiding linking against system yaml-cpp and pystring on macOS - Brecht Van Lommel
- Build: Upgrade OIDN to the release v2.3.3 - Nikita Sirgienko
- Build: Introduce new Device ID to OIDN 2.3.3 - Nikita Sirgienko
- Build: Update OIIO and Manifold - Thomas Dinges
- Build: upgrade DPC++ to 6.1.0 release - Nikita Sirgienko
- Build: Cycles fails to build with debug correlation macro - Brecht Van Lommel
- Build: Explicitly fetch LFS files from fallback remote - Brecht Van Lommel
CMake
- CMake: use "mode" argument for messages - Campbell Barton
Cleanup
- Cleanup: EEVEE: Warnings tautological-constant-out-of-range-compare - Clément Foucault
- Cleanup: Modifiers: rename function to draw modifier error message - Jacques Lucke
- Cleanup: Geometry Nodes: remove legacy type from socket item accessor - Jacques Lucke
- Cleanup: spelling in comments (make check_spelling_*) - Campbell Barton
- Cleanup: various non functional changes for C++ - Campbell Barton
- Cleanup: Move Surface Smooth brush initialization into brush file - Sean Kim
-
Cleanup: VSE: Rename
seq1andseq2references - John Kiril Swenson - Cleanup: Various non-functional changes for sculpt raycast methods - Sean Kim
- Cleanup: Nodes: use StringRefNull in socket item accessors - Jacques Lucke
-
Cleanup: Grease Pencil: Simplify
get_bone_matutility function - Falk David - Cleanup: Remove unused code - Jeroen Bakker
- Cleanup: Remove unused field from mesh draw batch cache - Hans Goudey
- Cleanup: Draw: Use StringRef for attribute names - Hans Goudey
- Cleanup: Order nodes alphabetically - Habib Gahbiche
-
Cleanup: Remove
Strip::slot_data_remove()in favour of looping over the strip data arrays - Matvey Smorodin - Cleanup: armature bone display type naming - Aras Pranckevicius
- Cleanup: Draw: Simplify trivial attribute requests clearing - Hans Goudey
- Cleanup: warnings with GCC mixing enums/ints & missing break - Campbell Barton
- Cleanup: spelling in comments (check_spelling_* target) - Campbell Barton
- Cleanup: remove unnecessary system headers - Campbell Barton
- Cleanup: armature bone display type naming - Aras Pranckevicius
- Cleanup: remove stale comment - Aras Pranckevicius
- Cleanup: Nodes: switch using enum instead of int - Jacques Lucke
- Cleanup: Nodes: simplify drag & drop code for node group interface tree view - Jacques Lucke
- Cleanup: Nodes: generalize finding valid insert position for tree view item - Jacques Lucke
- Cleanup: replace tree type by tree_idname - Habib Gahbiche
- Cleanup: Remove unused parameter in OBJ importer - Lukas Stockner
- Cleanup: Vulkan: Feature chain - Jeroen Bakker
- Cleanup: Minor changes for dynamic_topology_update - Sean Kim
- Cleanup: Deduplicate object space radius calculation - Sean Kim
- Cleanup: Use StringRef for some UI string arguments - Hans Goudey
-
Cleanup: Tag Brush
toggle_brushfield as deprecated - Sean Kim - Cleanup: Remove extra whitespace in some sculpt helper methods - Sean Kim
-
Cleanup: Improve documentation of
BKE_object/collection_duplicatefunctions. - Bastien Montagne -
Cleanup: Remove redundant usage of
ID_NEW_SETin Object high-level duplication code. - Bastien Montagne - Cleanup: Pass IndexMask by const reference - Hans Goudey
- Cleanup: Formatting - Hans Goudey
- Cleanup: Remove unused & unimplemented sculpt_paint functions - Sean Kim
- Cleanup: CMake indentation & wrap long lines - Campbell Barton
- Cleanup: early return in node gizmo poll functions - Campbell Barton
- Cleanup: remove trailing space - Campbell Barton
- Cleanup: use doxygen style comments for doc-strings - Campbell Barton
- Cleanup: remove unused defines - Campbell Barton
- Cleanup: remove unnecessary curve type check - Campbell Barton
- Cleanup: Assert on unknown enum - Omar Emara
- Cleanup: rename Curve::type -> ob_type, remove BKE_curve_type_get - Campbell Barton
- Cleanup: Rename Sculpt BMesh helper method and use it consistently - Sean Kim
- Cleanup: Avoid unnecessary manual conversion of .hide_vert - Sean Kim
- Cleanup: place ID comments before the literal values - Campbell Barton
- Cleanup: Spreadsheet: remove unused extra column cache - Jacques Lucke
-
Cleanup: VSE: Rename
Strip::machinetochannel- John Kiril Swenson -
Cleanup: VSE: Rename
eStripHandleenums fromSEQ_toSTRIP_- John Kiril Swenson -
Cleanup: VSE: Add selection code documentation and
constcode - John Kiril Swenson - Cleanup: Remove Dots Stroke material from USD's empty.blend test file - Jesse Yurkovich
- Cleanup: quiet missing-declarations warning - Campbell Barton
- Cleanup: various non-functional changes for C++ - Campbell Barton
- Cleanup: spelling in comments (make check_spelling_*) - Campbell Barton
- Cleanup: use function style casts for generated code - Campbell Barton
- Cleanup: prefer term "unreliable" over "flaky" - Campbell Barton
- Cleanup: use bool for comment variable in makesdna.cc - Campbell Barton
- Cleanup: Nodes: remove unused method - Jacques Lucke
- Cleanup: Rework sculpt_undo.cc for readability - Sean Kim
- Cleanup: make format - Jacques Lucke
-
Cleanup: Replace incorrect
MAX_ID_NAME-2string length byMAX_NAME. - Bastien Montagne - Cleanup: UI: Remove disabled RNA code - Guillermo Venegas
- Cleanup: inline array sizes in code-comments - Campbell Barton
-
Cleanup: Fix incorrect usages of
MAX_NAMEin BKE main namemap code. - Bastien Montagne -
Cleanup: Avoid passing both
SculptSessionandObject- Sean Kim - Cleanup: UI: Remove unused arguments for operator buttons - Hans Goudey
- Cleanup: resolve unused variable warning in release builds - Campbell Barton
- Cleanup: resolve pylint warnings - Campbell Barton
- Cleanup: add inline array size comments and minor corrections - Campbell Barton
- Cleanup: remove spaces from filenames, unix line endings - Campbell Barton
- Cleanup: Vulkan: Move comment - Jeroen Bakker
- Cleanup: Vulkan: Remove explicit feature VVL - Jeroen Bakker
- Cleanup: Vulkan: Remove unused getters. - Jeroen Bakker
- Cleanup: Vulkan: Use blender::Mutex - Jeroen Bakker
-
Cleanup: Fix incorrect comment about
namesize ofBLODataBlockInfo. - Bastien Montagne - Cleanup: Missing include - Omar Emara
- Cleanup: Geometry Nodes: rename GeoModifierLog to GeoNodesLog - Jacques Lucke
- Cleanup: add missing include - Jacques Lucke
- Cleanup: Geometry Nodes: simplify accessing socket usage - Jacques Lucke
- Cleanup: Cycles: Restructure camera viewplane calculation - Lukas Stockner
- Cleanup: Remove redundant return statement - Germain-Le-Chapelain
Compositor
- New Nodes
- 🔸 Compositor: Add Relative To Pixel node - Omar Emara
- 🔸 Compositor: Add Image Coordinates node - Omar Emara
- 🔸 Compositor: Add Dimensions output to Image Info node - Omar Emara
-
Search
- 🔸 Compositor: Add Glare types to search menu - Habib Gahbiche
- 🔸 Compositor: Add filter types to search menu - Habib Gahbiche
- 🔸 Compositor: support link search for filter node - Habib Gahbiche
-
UI
- 🔸 Compositor: improve default node position - Habib Gahbiche
- 🔸 Compositor: add viewer node to the default node tree - Habib Gahbiche
- 🔸 Compositor: UI: Visualize render size and domain size in image editor - Habib Gahbiche
- 🔸 Compositor: gizmo for Split node - Habib Gahbiche
- 🔸 Compositor: Avoid clamping after HSVA conversion - Omar Emara
- 🔸 Compositor: Turn Crop node options to inputs - Omar Emara
- 🔸 Compositor: Turn Color Balance options to inputs - Omar Emara
- 🔸 Compositor: Turn Blur node options to inputs - Omar Emara
- 🔸 Compositor: Use 2D/4D sockets in relevant sockets - Omar Emara
- 🔸 Compositor: Rename Suppress to Clamp in Glare node - Omar Emara
- 🔸 Compositor: Remove Relative option from Translate node - Omar Emara
- Compositor: Use realize size for relative to pixel conversion - Omar Emara
- Compositor: Hide value of Image Info node input - Omar Emara
- Compositor: Rename default node tree to "Compositing Node Tree" - Habib Gahbiche
Core
- Core: refer to Path Template docs in supported props' type info - Nathan Vegdahl
- Core: VectorList improvements - Miguel Pozo
Cycles
- Cycles: Use CUDA 11 to compile PTX kernels - Alaska
- Cycles: Fix inconsistency in Ng handling between Microfacets and other closures - Lukas Stockner
- Cycles: Introducing the code for adoption of Embree 4.4 - Nikita Sirgienko
- 🔸 Cycles: Adaptive subdivision triangular patches - Brecht Van Lommel
- Cycles: Disable MNEE in the HIP backend - Alaska
- Cycles: Guiding cleaning up and refactoring the guiding code - Sebastian Herholz
- Cycles: Fix occasional failure in path_create_directories - Michael Jones
- Cycles: Update hipSupportsDeviceOIDN after recent OIDN version upgrade - Nikita Sirgienko
DRW
- 🔸 DRW: Add a new GPU context for rendering preview jobs - Clément Foucault
Deps
- Deps: Build OSL with LLVM bitcode - Lukas Stockner
- Deps: update wayland dependencies - Campbell Barton
- Deps: Prevent OSL trying to use optix/CUDA on Windows ARM64 - Anthony Roberts
- Deps: Add support for ARM64 assembly in x264 and update FFmpeg version - Anthony Roberts
- deps: Fix windows build. - Ray Molenkamp
- deps: win: shaderc: do not harvest debug libs for shaderc - Ray Molenkamp
- deps: vmprep: update cmake to 3.31.7 needed for USD - Ray Molenkamp
Deps_builder
- Deps_builder: Win: X64: Fix msys2 setup - Ray Molenkamp
Depsgraph
Docs
- Docs: update help text for DNA renaming - Campbell Barton
- Docs: Update RNA to user manual URL mapping - Aaron Carlisle
- Docs: Fix outdated description of update in make help - Brecht Van Lommel
Documentation
- Documentation: Python: Add notice about MSL compatibility - Clément Foucault
Draw
- 🔸 Draw: Use VectorSet for generic attribute requests - Hans Goudey
EEVEE
- 🔸 EEVEE: Optimize Upfront specialization - Clément Foucault
- 🔸 EEVEE: Reverse-Z implementation - Clément Foucault
- 🔸 EEVEE: Film: Reduce amount of compilation stutters at startup - Clément Foucault
- 🔸 EEVEE: Avoid stall caused by film specialization in preview render - Clément Foucault
- 🔸 EEVEE: Only request raytracing shader specialization if needed - Clément Foucault
- 🔸 EEVEE: Default Startup Speedup - Clément Foucault
ffmpeg
- 🔸 ffmpeg: faster high-bpp/HDR video decoding - Aras Pranckevicius
Fix
- Fix: Vulkan: Incorrect enum value - Jeroen Bakker
- Fix: Vulkan: Store large vertex buffers inside CPU RAM. - Jeroen Bakker
- Fix: New FBX importer was not handling blender specific FullWeights - Aras Pranckevicius
- Fix: Vulkan: Soundness issues for Vulkan submission fences - Josh Belanich
- Fix: EEVEE: Broken assert - Clément Foucault
- Fix: Various asserts when creating GPU vertex formats - Hans Goudey
- Fix: GPU: Broken tests - Clément Foucault
- Fix: FCurve Settings RNA paths incomplete - Philipp Oeser
- Fix: Geometry Nodes: empty expanded menu entries in modifier - Jacques Lucke
- Fix: Nodes: Missing builtin categories for handling asset catalogs - quackarooni
- Fix: Asset Browser: typo in Import Method popover - Pablo Vazquez
- Fix: Geometry Nodes: Asset catalog "Unassigned" does not show in menu - quackarooni
- Fix: Call finish() for mutable attribute writers in new FBX importer - Jesse Yurkovich
- Fix: Various brush features do not use sampled area normal - Sean Kim
- Fix: Avoid precomputing factor cache in certain cases - Sean Kim
- Fix: Vulkan: memory leak when rendering animations - Jeroen Bakker
- Fix: Rigify Cat metarig Palm.002 roll misorientation - Gianluca Giampuzzo
- Fix: Grease Pencil: Check lock status in assign/remove vgroup API - Pratik Borhade
- Fix: crash when determining RNA data path of driver F-Curve - Sybren A. Stüvel
- Fix: Slow USD import with certain OpenColorIO configs - Brecht Van Lommel
- Fix: Cycles film exposure maximum is too low - Andrew Marshall
- Fix: Draw: Asserts due to recent changes - Jeroen Bakker
- Fix: Vulkan: Incorrect vertex fetch mode - Jeroen Bakker
- Fix: Improve Obj importers parsing and detection of NURBS knot mode - Mattias Fredriksson
- Fix: UI: Invert button doesn't work for some UIList instances - Pratik Borhade
- Fix: Possible overwriting of custom asset blend files - Julian Eisel
- Fix: Asset editing API possibly deleting user asset files - Julian Eisel
-
Fix:
active_grid_indexandactive_face_indexcan be stale - Sean Kim - Fix: Geometry Nodes: wrong struct passed to BLO_read_struct - Jacques Lucke
- Fix: Nodes: off-by-one error when reordering tree interface items - Jacques Lucke
- Fix: Vertex group ui in edit mode - Pratik Borhade
- Fix: Typo in default_world_get - EmomaxD
- Fix: Vulkan: Incorrect Std430 memory layout - Jeroen Bakker
- Fix: Assert in Set Tool Selection node with floats - Hans Goudey
- Fix: Nodes: Apply unit range for Mix factor - илья _
- Fix: Build failure without OpenVDB - Hans Goudey
- Fix: Crash when all inputs inside panel are unavailable - Omar Emara
-
Fix:
RNA_property_string_get()always returns zero-length string - Nathan Vegdahl - Fix: GPU: Assert caused by specialization constant with primitive expansion - Clément Foucault
- Fix: Truncated filepath fields give incorrect path template errors - Nathan Vegdahl
- Fix: Spreadsheet: bad default width for instance reference column - Jacques Lucke
- Fix: AttributeStorage shared data reading broken - Hans Goudey
- Fix: Menu search crash outside of node editor - Hans Goudey
- Fix: Potential ASAN crash when Dyntopo sculpting - Sean Kim
- Fix: FBX importer was not skipping special MotionBuilder viewport cameras - Aras Pranckevicius
- Fix: Jemalloc settings not getting applied as version check fails - Sebastian Parborg
- Fix: VSE: Tweaking strip with selected handle - John Kiril Swenson
- Fix: Asset browser glitch when library has back slash in path - Julian Eisel
- Fix: Windows test failure after recent asset library path changes - Julian Eisel
- Fix: unintentional fall-through in switch statement - Jacques Lucke
- Fix: VSE Duplicating strips in preview operates on all strips - Mukhesh
- Fix: #138928: Metal: Custom pyGPU shader has a compilation error in 4.4 - Clément Foucault
- Fix: GPU: Wrong colorspace on context swap - Clément Foucault
- Fix: Scale/Rotate proportional editing for Grease Pencil / Curves - Philipp Oeser
- Fix: GPU: Profiling for compilation contexts - Miguel Pozo
- Fix: Cycles light tree poor when light normalize is off - Brecht Van Lommel
- Fix: Core: bitscan_reverse_uint64 on Windows - Miguel Pozo
- Fix: File Browser: Hiding dot-prefixed data-blocks - RedMser
- Fix: Make new FBX importer support Light exposure - Aras Pranckevicius
- Fix: Line stroke method is drawn incorrectly - Nicola
- Fix: Nodes: missing null check - Jacques Lucke
-
Fix: GPU: Crash in
pygpu_batch_draw- Falk David - Fix: Vulkan: Validation error on devices without external memory - Jeroen Bakker
- Fix: missing include - Jacques Lucke
- Fix: Vulkan: Threading issue when waiting for submission - Oscar Blumberg
- Fix: Viewport: Assert when drawing fly navigation aim symbol. - YimingWu
- Fix: EEVEE: Incorrect binding cryptomatte textures - Jeroen Bakker
- Fix: Cycles Metal graphics interop not working - Brecht Van Lommel
- Fix: Properly free Vulkan interop handle for Cycles - Brecht Van Lommel
- Fix: MSVC Type promotion errors - YimingWu
- Fix: Lint issues in make_update.py - Sebastian Parborg
- Fix: Vulkan: Swapchain validation - Jeroen Bakker
- Fix: Don't update submodules that we shouldn't checkout - Sebastian Parborg
- Fix: Typo in compositor Invert node - Omar Emara
- Fix: Win32 compiling issue for readimage.cc - YimingWu
- Fix: Win32 include error - YimingWu
- Fix #122256, #123862: OBJ import Clamp Size option issues - Aras Pranckevicius
- Fix #127175: KeyingSets: Always show 'Available' option in Insert Keyframe Menu - HeCorr
- Fix #128126: Hidden Node Groups not searchable in Add Node menu - RedMser
- Fix #135930: Strip can be added to locked or muted channel - Richard Antalik
- Fix #136737: Periodic freezes in edit-mode with high poly meshes - Campbell Barton
- Fix #136906: Crash if asset library path contains back slash on macOS - Julian Eisel
- Fix #137346: IME input getting lost when using Wayland - Sebastian Parborg
- Fix #138140: Vulkan: First few frames squashed on X11 - Jeroen Bakker
- Fix #138168: Weightpainting: Smooth Operator does not respect locked flag - Pratik Borhade
- Fix #138636: "Affect only origins" fails for bezier handles - Philipp Oeser
- Fix #138713: UI: Inverting attribute UILIst shows internal attributes - Pratik Borhade
- Fix #138733: Driver to control GP layer visibility is invalid - Sybren A. Stüvel
- Fix #138769: crash when baking - Jacques Lucke
- Fix #138771: VSE Non-uniform scaling strip in Preview window broken - Philipp Oeser
- Fix #138782: "Set Origin > Geometry to Origin" can be inaccurate - Philipp Oeser
- Fix #138795: FBX importer was not handling armatures with non-bone nodes - Aras Pranckevicius
- Fix #138823: GPU: Python: Incorrect color when using widelines - Clément Foucault
- Fix #138827: Line Project tool not working on scaled objects - Nicola
- Fix #138832: Panel Category Background Out By One Pixel - Harley Acheson
- Fix #138834: FBX import improved pivot handling - Aras Pranckevicius
- Fix #138843: Vulkan: Swapchain issues - Jeroen Bakker
- Fix #138851: Assert on entering Sculpting workspace - Sean Kim
- Fix #138868: Slow start up on when using certain OCIO config - Sergey Sharybin
- Fix #138869: Select Colums on selected Keys fails in NLA tweakmode - Philipp Oeser
- Fix #138887: Clay Strips brush ignores automask settings - Sean Kim
- Fix #138910: Crash with sculpt mode and "Texture" shading type - Hans Goudey
- Fix #138933: Support assigning a default value to menus wrapping node groups - Lukas Tönne
- Fix #138942: Vulkan: Use different scaling on first swapchain - Jeroen Bakker
- Fix #138978: Modifier cage option not working when GPU subdivision is off - Brecht Van Lommel
- Fix #138986: Cycles curve intercept and length rendering wrong - Brecht Van Lommel
- Fix #139002: Cycles particle object instance appears in center of scene - Brecht Van Lommel
- Fix #139007: Input string refresh calls missing for Win IME - Sebastian Parborg
- Fix #139010: Cycles USD motion blur shading artifacts - Brecht Van Lommel
- Fix #139022: Cycles: Mix Color Node using socket values when constant folded - Weizhen Huang
- Fix #139031: Armature Edit mode can't reveal hidden bones - Philipp Oeser
- Fix #139055: failing implicit conversion between different subtypes - Jacques Lucke
- Fix #139064: EEVEE: Resizing render region can cause a crash - Miguel Pozo
- Fix #139103: Spreadsheet row filters not working - Hans Goudey
- Fix #139114: Node insert auto offset broken with frames - Hans Goudey
- Fix #139133: Crash entering edit mode for curve/text objects - Campbell Barton
- Fix #139141, #139169: Vulkan: Incorrect depth24s8->float conversion - Jeroen Bakker
- Fix #139162: Exclude invisible point instancers during USD import - Jesse Yurkovich
- Fix #139170: Regression: The Linked Node Group Socket Name is Editable - Pratik Borhade
- Fix #139177: Realize Instances Node results in empty curves - Campbell Barton
- Fix #139179: Shader node panels are not translated in the material properties - Pratik Borhade
- Fix #139189: Vulkan: UV Display Issues When Selecting Specific Mesh Regions - Clément Foucault
- Fix #139191: GPU: Blender crashes on startup with addons that use pyGPU shader - Clément Foucault
- Fix #139195: Preferences are not automatically saved after keyitem_restore - Pratik Borhade
- Fix #139199: Grease Pencil: Update compositor node when pass is toggled - YimingWu
- Fix #139218: implicit group inputs show input value - Jacques Lucke
- Fix #139223: Topology automasking crash when precomputed - Sean Kim
- Fix #139256: For each element uses incorrect default curve type - Hans Goudey
- Fix #139284: Vulkan: Garbage collection not always run when rendering - Jeroen Bakker
- Fix #139330: Incorrect offset grouping nodes inside frame - Hans Goudey
- Fix #139354: Metal: AgX turns rendered image into black white - Clément Foucault
- Fix #139364: FileHandler example for shader editor does not work - Jacques Lucke
- Fix #139387: Try to handle mmap exception on Win32 - YimingWu
- Fix #139388: Nodes: Frame node with text has wrong margins and line breaks - Jacques Lucke
- Fix #139393: Show Knife Tool Shortcut on Edit Mesh Menu - Harley Acheson
- Fix (unreported): VSE: Strips not deselected on press - John Kiril Swenson
- Fix (unreported) BLO: Missing some blendfile version info in some Library Mains. - Bastien Montagne
-
Fix
IDP_MergeGroup_exnot taking 'ID management' flags as parameter. - Bastien Montagne - Fix array size for NodeImageMultiFileSocket::layer - Campbell Barton
- Fix assert adding particle system with an active float color layer - Campbell Barton
- Fix build error, missing reference to INT_MIN - Campbell Barton
- Fix crash in Sequencer Unmute without a valid region - Campbell Barton
- Fix crash in attribute convert/remove - Campbell Barton
- Fix crash in grease pencil snap without a window region - Campbell Barton
- Fix crash in keyframe jump when called without a valid area - Campbell Barton
- Fix crash in vertex group lock - Campbell Barton
GHOST/SDL
- GHOST/SDL: support horizontal scroll events - Campbell Barton
GPU
- GPU: Shader Preprocess: Add support for BLI C++ vector functional swizzle - Clément Foucault
- GPU: Unified DataFormat enum - Clément Foucault
- GPU: Replace U32/I32 combination with GPU_FETCH_INT_TO_FLOAT in UI code - Hans Goudey
- GPU: Remove int float fetch mode combination - Hans Goudey
- GPU: Shader Preprocess: Add support for template inside namespaces - Clément Foucault
- GPU: Add GL_ARB_clip_control support to the GL backend - Clément Foucault
- GPU: Shader Preprocess: Add error check for conditional include - Clément Foucault
- GPU: Shader Preprocess: Escape more character in regex strings - Clément Foucault
- GPU: Shader Preprocess: Assert pragma once in lib - Clément Foucault
- 🔸 GPU: Make Shader Specialization Constant API Thread Safe - Clément Foucault
- GPU: Assert that a shader is not bound when deleting it - Clément Foucault
- GPU: Add shader and pass name inside debug groups - Clément Foucault
- GPU: Python: Add missing diagonal constructors for square matrices - Clément Foucault
- GPU: Python: Add workaround to support INT_TO_FLOAT - Clément Foucault
- GPU: Python: Temporarily add back non-4bytes aligned formats - Clément Foucault
- GPU: Python: Raise error when creating shaders without create info - Clément Foucault
Geometry Nodes
- 🔸 Geometry Nodes: Add "Set Grease Pencil Softness" node - quackarooni
- 🔸 Geometry Nodes: don't trigger evaluation when adding a frame - Jacques Lucke
- 🔸 Geometry Nodes: initial support for volume grids in function nodes - Jacques Lucke
- 🔸 Geometry Nodes: reduce Bake node weight in link-drag-search - Jacques Lucke
- 🔸 Geometry Nodes: align sockets in Replace String and Slice string nodes - Alberto Pilotto
- 🔸 Geometry Nodes: support panels and attribute/layer search in node group operator - Jacques Lucke
Gizmo
- Gizmo: Support translation without cross drawing - Habib Gahbiche
Grease Pencil
I18N
- I18N: Updated UI translations from git/weblate repository (74d14bea6). - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (bdcbecab934c0d083a09). - Bastien Montagne
I18n
- I18n: Fix weird translation string - Damien Picard
- I18n: Disambiguate "Close" - Damien Picard
- I18n: Add translation contexts to node panels - Damien Picard
- I18n: Use context for node panel translation in material properties - Damien Picard
IO
- 🔸 IO: more strongly indicate that Collada is deprecated - Aras Pranckevicius
Keymap
- 🔸 Keymap: Use horizontal scroll wheel to pan in 3D Viewport - Pablo Vazquez
Lights
- 🔸 Lights: Remove units from light power - Brecht Van Lommel
- 🔸 Lights: Add exposure property - Eqkoss / T1NT1N
- 🔸 Lights: Add temperature property - Eqkoss / T1NT1N
- 🔸 Lights: Add normalize property - Eqkoss / T1NT1N
Linux
- 🔸 Linux: Fetch libraries with "make update", update help arguments for make_update.py - Sebastian Parborg
MaterialX
- 🔸 MaterialX: Export Principled BSDF as OpenPBR Surface - Michael B Johnson
makesdna
- makesdna: support C-style comments in array definitions - Campbell Barton
Mesh
- 🔸 Mesh: Rewrite face corner normals calculation - Hans Goudey
Nodes
- 🔸 Nodes: add Bit Math node - Colin Basnett
- 🔸 Nodes: Add support for 2D and 4D vector sockets - Omar Emara
- 🔸 Nodes: Add Factor and Percentage subtypes for vector sockets - Omar Emara
- 🔸 Nodes: minify value input nodes - Jacques Lucke
- 🔸 Nodes: auto-hide unused inputs if usage depends on menu - Jacques Lucke
- 🔸 Nodes: don't jump viewer node if it's still visible - Jacques Lucke
- 🔸 Nodes: new operator to simplify adding named frames - Jacques Lucke
- 🔸 Nodes: support changing attached frame while transforming nodes - Jacques Lucke
- 🔸 Nodes: support searching for frame/seconds to find Scene Time node - Jacques Lucke
- 🔸 Nodes: initialize node name from group name - Jacques Lucke
- 🔸 Nodes: show internal links independent of whether output is linked - Jacques Lucke
- 🔸 Nodes: improve drawing with invalid zone links - Jacques Lucke
- 🔸 Nodes: improve forward compatibility for unknown interface item types - Jacques Lucke
- 🔸 Nodes: Show error when image node cannot be added - Habib Gahbiche
- 🔸 Nodes: support searching for warning types directly - Jacques Lucke
- 🔸 Nodes: improve implicit inputs - Jacques Lucke
- 🔸 Nodes: use modifier's persistent UID in context and viewer path - Jacques Lucke
- Nodes: clarify socket visibility methods - Jacques Lucke
Paint
-
🔸
Paint: Add toggle support for
brush.asset_activate- Sean Kim - 🔸 Paint: Allow duplicating essential brushes into current file - Sean Kim
Physics
- 🔸 Physics: Decrease thickness of smoke surface emission for small objects - Bartosz Kosiorek
Py Docs
- Py Docs: Gotcha chapter on threading - Sybren A. Stüvel
Python API
-
Python API: Let
gpu_extras.presets.draw_texture_2duseTRISinstead ofTRI_FAN- Sietse Brouwer -
Python API: Grease Pencil: Add function
set_vertex_weightsonGreasePencilDrawing- Tom Martin
Refactor
- Refactor: Remove PBONE_VISIBLE and EBONE_VISIBLE macros - Christoph Lendenfeld
- Refactor: UI: Replace uiItemS and uiItemS_ex with uiLayout::separator - Guillermo Venegas
- Refactor: pass the select mode to EDBM_selectmode_set - Campbell Barton
- Refactor: Functions: extract user data to separate header - Jacques Lucke
-
Refactor: remove the
do_historyargument from UV selection functions - Campbell Barton - Refactor: UI: Replace uiItemM_ptr and uiItemM with uiLayout::menu - Guillermo Venegas
- Refactor: BLI: simplify compute context hash generation and make it lazy - Jacques Lucke
- Refactor: UI: Replace uiItemMenuF and uiItemMenuFN with uiLayout methods - Guillermo Venegas
-
Refactor: Replace Enhance Details
SCULPT_stroke_is_first_brush_step- Sean Kim -
Refactor: Move and replace Face Set
SCULPT_stroke_is_first_brush_step- Sean Kim -
Refactor: Replace Cloth
SCULPT_stroke_is_first_brush_stepcheck - Sean Kim -
Refactor: Move and replace Pose
SCULPT_stroke_is_first_brush_step- Sean Kim -
Refactor: Replace Paint brush
density_seedstorage - Sean Kim - Refactor: typedef for Shape Key enums - Christoph Lendenfeld
- Refactor: Remove unused bone flag - Christoph Lendenfeld
- Refactor: Move bone functions to separate file and into namespace - Christoph Lendenfeld
- Refactor: Rename subpatch members to prepare for triangular patch - Brecht Van Lommel
- Refactor: Track max subdivision depth per edge instead of per patch - Brecht Van Lommel
- Refactor: Vulkan/OpenXR: Import memory handles only once - Jeroen Bakker
- Refactor: Attributes: Access active attribute with name - Hans Goudey
- Refactor: Add various DNA_ enums.h and DNA _types.h files - Brecht Van Lommel
- Refactor: Add and use MEMCPY_STRUCT_AFTER_CHECKED - Brecht Van Lommel
- Refactor: OpenXR: Add begin and end submit swapchain handler - Jeroen Bakker
- Refactor: UI: Replace uiItemFullO with class method uiLayout::op - Guillermo Venegas
- Refactor: UI: Replace uiItemFullO_ptr with class method uiLayout::op - Guillermo Venegas
- Refactor: Convert Node Socket Default Value and Storage readfile code to typed DNA handling. - Bastien Montagne
- Refactor: const-correctness in BLI_array_store API - Campbell Barton
- Refactor: Move anim data bmain ops to own file - Habib Gahbiche
- Refactor: GPU: GPUMaterial & GPUPass compilation - Miguel Pozo
- Refactor: UI: Remove uiLayout::op id properties parameter - Guillermo Venegas
-
Refactor: UI: Remove
uiItemBooleanOAPI - Guillermo Venegas - Refactor: Nodes: add general NodeComputeContext - Jacques Lucke
- Refactor: Geometry Nodes: extract modifier UI code to separate file - Jacques Lucke
- Refactor: UI: Remove uiItemIntO API - Guillermo Venegas
- Refactor: Geometry Nodes: extract modifier dependency from UI code - Jacques Lucke
- Refactor: BLI: simplify extending get_default_hash function - Jacques Lucke
- Refactor: Geometry Nodes: extract warning type to separate file - Jacques Lucke
Revert
- Revert "Cleanup: armature bone display type naming" - Thomas Dinges
- Revert "Refactor: Add and use MEMCPY_STRUCT_AFTER_CHECKED" - Brecht Van Lommel
- Revert "Tests: Geometry Nodes: add initial Import CSV node tests" - Jacques Lucke
Sculpt
- 🔸 Sculpt: Enable pen tilt without experimental option - Sean Kim
Shape Keys
- 🔸 Shape Keys: Use actual evaluated meshes in Update/Join operators - Hans Goudey
Spreadsheet
- 🔸 Spreadsheet: make column widths editable - Jacques Lucke
- 🔸 Spreadsheet: show column name in column header tooltip - Jacques Lucke
- 🔸 Spreadsheet: support double click to fit column width - Jacques Lucke
- 🔸 Spreadsheet: support reordering columns interactively - Jacques Lucke
- 🔸 Spreadsheet: persistent table layouts - Jacques Lucke
- 🔸 Spreadsheet: support restoring temporarily unavailable data columns - Jacques Lucke
- 🔸 Spreadsheet: move context path to left side bar - Jacques Lucke
- Spreadsheet: garbage collect long unavailable columns - Jacques Lucke
Tests
- Tests: Geometry Nodes: add initial Import CSV node tests - Jacques Lucke
- Tests: Geometry Nodes: add initial Import CSV node tests - Jacques Lucke
- Tests: have test_object active by default in regression test files - Jacques Lucke
- Tests: Compositor: add test with animated input - Habib Gahbiche
- Tests: Add undo test for Sculpt trim tool - Sean Kim
- Tests: Add test files for new light features - Brecht Van Lommel
- Tests: More coverage of USD unit and orientation export settings - Jesse Yurkovich
Tools
- Tools: Include commits to all branches in weekly report script - Julian Eisel
- Tools: Group commits in weekly report scripts - Julian Eisel
- Tools: Adress mypy errors in recent weekly report script additions - Julian Eisel
- Tools: add a utility to validate array sizes - Campbell Barton
UI
- 🔸 UI: Ghost: support horizontal scrolling for 2D editors - Jacques Lucke
- 🔸 UI: support scrolling over fully visible tree view - Jacques Lucke
- 🔸 UI: Tree View: support drag&drop below last element - Jacques Lucke
- 🔸 UI: Improvements to shading layout - Aaron Carlisle
- 🔸 UI: Increase Gizmo 3D Wire Parts Hit Size - Harley Acheson
- 🔸 UI: show an icon in the "slots" menu for - Campbell Barton
- 🔸 UI: Move some advanced Cycles light settings to Settings panel - Brecht Van Lommel
- 🔸 UI: Fix and improve a few messages - Damien Picard
USD
- 🔸 USD: Add support for Text objects during export - Jesse Yurkovich
- 🔸 USD: Add support for UsdPrimvarReader_TYPE in materials - Jesse Yurkovich
VSE
- 🔸 VSE: new cache implementation - Aras Pranckevicius
- 🔸 VSE: Copy handles to selected strips - John Kiril Swenson
Vulkan
- Vulkan: Add render discard pile to debug - Jeroen Bakker
- Vulkan: Report on all enabled optional features and extensions - Jeroen Bakker
- Vulkan: Enable robustness2 null descriptors - Jeroen Bakker
- Vulkan: Add ghost.vulkan logging - Jeroen Bakker
WM
- WM: use boolean for ime_data_is_composing - Campbell Barton
6 Comments
no link to the livestream but i believe it is great....
Hi Pablo. Any mesh line tool updates as the addon was removed? How can we easily draw 3D shapes by lines?
Is it expected that the Edit Poly modifier will ever become fully non-destructive, like in 3ds Max?
Hi! I have two questions:
Why doesn't Blender use lumens (lm) or lux (lx) to set light intensity? It would be much simpler to work with these units, since you can look up exact values online, making everything physically accurate. (There could be an extra tab with reference values, like in Unity.)
Two years ago, there was a video titled "Progress on a new Bevel Geometry Node". What's the status of that?
Oi, Pablo! just some short thoughts-
I am personally VERY upset about the radiometric unit removal, I know it's still the same, but I feel a little lost without it :( ... sunlight in space above atmo is 1300 and sunlight on earth is 444 and bluish! I agree for many people it is confusing- but it's just like removing metric units because Americans aren't used to metric! Just like the other scalars, you should be able to enable it/change the units if you prefer different ones, including irradiance! As a VFX artist who works with IRL footage, and make some visualizations, I have a tendency to feel lost if I don't have a reference puppet and light.
The survey was odd. I do VFX for advertisement, film, and animation. Do I answer I use blender for film/animation, advertisement, or VFX? I think primary use case is important, but you need to split generalist roles! something like "when you do work with Blender, what do you use it for most? (up to 3)" and separate "animation/film" to "3D animation", "VFX (games)" "VFX (film)" "2D animation" "video editing", etc.
also, considering campaigning for a datablock editor- a place to handle packing/unpacking, deleting data, bulk adding fake users, browsing assets to drag into other editors, deep-diving into internal data blocks, etc. there's an external media browser, but things like unreal/godot/after effects/resolve all have internal file browsers! am I out of line for wanting this?
Hola Pablo! Really great to see Blender.today back again after the hiatus 😊 I've been trying to follow the development of the physics simulation tools in geometry nodes, reading some of the weekly reports by Lukas Tonne and the posts by Jacques on devtalk. Sounds like great progress is being made with solvers behind the scenes, I'm just wondering if you knew when more official announcements will be made about it?