Blender 5.1 just got BETTER! — Blender Today LIVE #279
Changelog between March 31, 2026 - April 14, 2026 at 12:00
371 commits in total, of which 165 are fixes, 46 cleanup, and 33 refactors.
Alembic
- 🔸 Alembic: Support Point Cloud single value radius for import - Hans Goudey
Animation
- Anim: Add unit tests for pose slide operators - Christoph Lendenfeld
- 🔸 Anim: Allow Auto-IK reverse-IK with non-connected parent - paulhanson2000
- Anim: Add unit tests for pose slide operators - Christoph Lendenfeld
Assets
- Assets: Make remote library listing work with custom properties - Julian Eisel
- Assets: Rework how asset libraries access their Preferences definition - Julian Eisel
- 🔸 Assets: "Download Asset" in asset shelf context menu for online assets - Julian Eisel
- Assets: Make finished asset downloads update asset shelf - Julian Eisel
- 🔸 Assets: Show online icon in asset shelves on asset highlight - Julian Eisel
- Assets: use mutex to protect parallel loading of asset catalogs - Sybren A. Stüvel
Benchmark
- Benchmark: Run multiple times and report avg/min/max - Jeroen Bakker
- Benchmark: Use markdown for status table - Jeroen Bakker
BLF
- 🔸 BLF: vertically reposition combining marks that overlap the base glyph - Campbell Barton
BLI
- 🔸 BLI: Optimize a few IndexMask array operations - Hans Goudey
- BLI: Use new IndexMask utilities for Virtual array methods - Hans Goudey
Build
-
Build: Linux: Fix install_linux_packages.py
command -vsubprocess.run() error - Jonas Holzman - 🔸 Build: Bump minimal CMake version to 3.21 - Clément Foucault
- Build: Fix shader_tool continually rebuilding with Ninja - Brecht Van Lommel
- Build: Set ARMV8.2-A as minimum architecture for Linux ARM64 - Brecht Van Lommel
Cleanup
- Cleanup: Reduce warning due recent changes - Jeroen Bakker
- Cleanup: Use BLI_color_types.hh instead of BLI_color.hh - Hans Goudey
- Cleanup: EEVEE: Deduplicate node socket value checks - Weizhen Huang
- Cleanup: quiet unused variable warnings in release mode - Campbell Barton
- Cleanup: resolve various Python warnings - Campbell Barton
- Cleanup: spelling in comments (make check_spelling_*) - Campbell Barton
- Cleanup: sort cmake file lists - Campbell Barton
- Cleanup: quiet nonnull GCC warning by moving the check into a function - Campbell Barton
-
Cleanup: WM: Use lowercase
wmprefix for various WM types - Jonas Holzman - Cleanup: use ED_node_is_compositor - Habib Gahbiche
- Cleanup: ImBuf: Use type enum instead of int - Hans Goudey
- Cleanup: ImBuf: Use std::string to store file path - Hans Goudey
- Cleanup: fix code comments and remove unused operator - Pratik Borhade
- Cleanup: Remove profile data - Clément Foucault
- Cleanup: Geometry Nodes: Remove legacy settings access from RNA - Hans Goudey
- Cleanup: Geometry Nodes: Rename settings to settings_legacy - Hans Goudey
- Cleanup: EEVEE: Shadow: Invalid framebuffer name - Clément Foucault
- Cleanup: Use attribute math mixing utility - Hans Goudey
- Cleanup: Geometry Nodes: Separate point distribute offsets and sampling - Hans Goudey
- Cleanup: ImBuf: Create "real" ImBuf for radial control view - Hans Goudey
- Cleanup: ImBuf: Make display buffer pointer const - Hans Goudey
- Cleanup: ImBuf: Const correctness for byte to float transform - Hans Goudey
- Cleanup: quite "unused variable" warning - Philipp Oeser
- Cleanup: Rename draw_handle constructor parameters - Miguel Pozo
- Cleanup: Grease Pencil: Remove legacy packing macros - Clément Foucault
-
Cleanup: Reorder
ColormanageProcessorfields - Sean Kim - Cleanup: XR: Use CLOG logging in GHOST XR instead of printf/fprintf - AbinjithTK
- Cleanup: XR: Display event type string when logging unhandled events - Jonas Holzman
- Cleanup: Use accessor colorspace functions for byte and float buffers - Sean Kim
- Cleanup: glTF: Rename active uvmap to render - Julien Duroure
- Cleanup: quiet "unused variable" warning - Philipp Oeser
- Cleanup: scale the whole glyph metrics for VFont fallback glyphs - Campbell Barton
- Cleanup: resolve divide by zero in 3D text justify calculation - Campbell Barton
-
Cleanup: Move
LibraryFlagenum fromDNA_ID.htoDNA_ID_enums.h- Bastien Montagne - Cleanup: EEVEE: Wrap several functions into namespaces or classes - Clément Foucault
- Cleanup: Silence copy elision warning - Sean Kim
- Cleanup: CMake formatting - Jonas Holzman
- Cleanup: EEVEE: De-duplicate checks for transmissive closures - Weizhen Huang
- Cleanup: make format - Brecht Van Lommel
- Cleanup: Remove residual auto-address spaces defines - Sergey Sharybin
- Cleanup: Various non-functional Palette changes - Sean Kim
- Cleanup: Remove unused method - Sean Kim
- Cleanup: BLI: Skip group index sampling if there is only one group - илья _
- Cleanup: GPU: Shader Tool: Split processing path per language - Clément Foucault
- Cleanup: Const qualifiers in Cycles attribute utilities - Sergey Sharybin
- Cleanup: Add comment about bit-size of LibraryFlag. - Bastien Montagne
Compositor
- 🔸 Compositor: Add Object Info node - Omar Emara
- Compositor: Use type default value for invalid links - Omar Emara
- Compositor: Track time dependencies in depsgraph - Omar Emara
Core
- Core: Add some very simple initial global undo unittests. - Bastien Montagne
- Core: Refactor BKE_id_delete API. - Bastien Montagne
Curves
Cycles
- Cycles: Add fundamental support for upscaling denoisers - Patrick Mours
- Cycles: Adding OSL closures translucent_bsdf and transparent_bsdf - Owen O'Malley
- Cycles: Use implicit sharing to avoid copying some attributes - Hans Goudey
- Cycles: Add NodeType::get_type_names() for iterating all node types - Brecht Van Lommel
- Cycles: oneAPI: Use sycl::inclusive_scan_over_group instead of ballot - Rafal Bielski
- 🔸 Cycles: Add Cast Shadows options to world - Sergey Sharybin
- Cycles: Support geometry motion blur with an even number of steps - Brecht Van Lommel
Deps
- Deps: Linux: Fix Blosc build errors with GCC 15 - Jonas Holzman
Docs
- Docs: Update RNA / User Manual Mappings - Aaron Carlisle
- Docs: bpy: Improve types.Int/FloatProperty soft/hard_min/max description - Jonas Holzman
DRW
- DRW: Point Cloud: Make shader file not depend on draw_object_infos - Clément Foucault
- DRW: Port View and Model lib to BSL - Clément Foucault
EEVEE
- 🔸 EEVEE: Fast GI: Resolve major issues - Clément Foucault
- EEVEE: Port LUT precomputation to BSL - Mark van de Ruit
- EEVEE: Rename some shader files to BSL extension - Clément Foucault
- EEVEE: Port raytrace denoise pipeline to BSL - Clément Foucault
- EEVEE: Update references - Clément Foucault
- EEVEE: Refactor of BxDF/LTC LUT access - Mark van de Ruit
- EEVEE: Workaround assert in update_mipmaps - Clément Foucault
- EEVEE: Port Volume Pipeline shaders to BSL - Clément Foucault
Fixes
- Fix: Remove redundant check for scrolling views - Pratik Borhade
- Fix #156352: EEVEE: Broken Render Region in Viewport Image Render - Philipp Oeser
- Fix: Vulkan: Disable texture pools on legacy Intel iGPUs - Christoph Neuhauser
- Fix: PyDoc format of gpu.types classes do not align with other classes - nutti
- Fix #141180: Grease Pencil: Strokes are displayed as polylines in Weight Paint mode - Casey Bianco-Davis
- Fix #156634: Texture paint normal falloff broken for all-sharp faces - Hans Goudey
- Fix: nullptr check when loading online assets without custom properties - Sybren A. Stüvel
- Fix: Cycles: Number of Integrator node sockets is beyond limit - Patrick Mours
- Fix crash caused by uninitialized memory use in the sequencer - Campbell Barton
- Fix: Mantaflow memory leak in PbArgs temporary storage - Brecht Van Lommel
- Fix #156587: Crash when Ctrl + Scroll on empty item list in group node setting - Pratik Borhade
- Fix: Node Wrangler: Outdated math operations list - quackarooni
- Fix: Cycles denoise animation test is flaky with parallel ctest - Brecht Van Lommel
- Fix: Cycles: Wrong minimum value for render texture resolution - Brecht Van Lommel
- Fix #156474, #156473: Cycles wrong mipmap with some types of texture coords - Brecht Van Lommel
- Fix: Cycles: Generate texture cache wrong error on missing file - Brecht Van Lommel
- Fix #156698: Windows: Use the character count instead of buffer size when setting window title - Owen Mooney
- Fix: Build error in Cycles Hydra render delegate after implicit sharing - Brecht Van Lommel
- Fix #156686: Crash registering node tool from outdated asset meta-data - Hans Goudey
- Fix #156687: Even-odd CDT concave polygons resulting in an empty fill - Campbell Barton
- Fix: File stuck highlighted after renaming in file browser. - Nik
- Fix #155467: Artifacts Wayland + NVIDIA 595 - Jeroen Bakker
- Fix: GPU compositor has bad implicit conversion - Omar Emara
- Fix #156512: Using Asset Browser with many asset libraries causes lag - Julian Eisel
- Fix: Error in earlier commit - Julian Eisel
- Fix #139646: Invalid node editor scissor tests - Jeroen Bakker
- Fix: Memory leak in cached image code - Omar Emara
-
Fix: release
variance_history_txafter last use ineevee_raytrace- Mark van de Ruit - Fix #156748: Geometry Nodes modifiers lose pointer property on save/reload - Tibo Stans
- Fix #116725: Reset active section after factory settings disables Developer Extras - Kyle Jensen
- Fix: Quiet warning WITH_PYTHON=OFF - Guillermo Venegas
- Fix #156431: LineArt: Correct collection flags inheritance - YimingWu
- Fix: Crash when opening certain files with library overrides - Nathan Vegdahl
- Fix #156643: Animrig: Don't insert frames for keying sets without path - YimingWu
- Fix #156414: UI: Area dock cursor doesn't update when executed from hotkey - Pratik Borhade
- Fix #156647: Use-after-free with Stop at End Frame animation playback - Sybren A. Stüvel
- Fix #156757: quick fur operator uses old geometry nodes modifier api - Jacques Lucke
- Fix #156381: Axes-to-Rotation node needs a fallback function - Lukas Tönne
- Fix #156801: Don't remap edge vertices of edges that are not part of a face - Martijn Versteegh
- Fix #156819: UI: Dragging a menu executes the first item in the list - Guillermo Venegas
- Fix #156651: assert when building geometry nodes lazy function - Jacques Lucke
- Fix: UI: Store popup attach direction in button - Guillermo Venegas
-
Fix: Negative ref-count assert in debug builds using
bpy_run_string_exec_with_locals_assume_gil- Guillermo Venegas - Fix #151154: rotation floating point errors with 90-degree rotations - Campbell Barton
- Fix #156860: Renaming UV maps causes them to disappear - Tariq-Sulley
- Fix #156791: Cannot draw asset shelf header when disabled from the rna property - Pratik Borhade
- Fix #156415: glTF UVMaps export - Julien Duroure
- Fix: Missing updates in Set Attribute operator for full domain selection - Hans Goudey
- Fix: PyDoc: BPyOpsSubModOp.poll positional-only arg - Andrej730
- Fix #156786: Invalid links crash GPU compositor - Omar Emara
- Fix #156830: GPU Compositor crashes for huge resolutions - Omar Emara
- Fix #156778: Capitalize 'Workbench' in VSE tooltip - Alaska
- Fix (studio-reported) GeoNode Modifier: Crash when missing linked geonode ID. - Bastien Montagne
- Fix (unreported) Core: Invalid memory access at readfile time. - Bastien Montagne
- Fix: GPU: Shader Tool: Exception on empty token error - Clément Foucault
- Fix #156521: Grease pencil modifier add menu shows duplicate categories - Karim
- Fix: Experimental texture paint doesn't tag image as dirty - Sean Kim
-
Fix #156793: Sculpt
ignore_background_clicksetting not always used - Henry Jiang - Fix #111039: Texture Paint Backface Culling does not work with symmetry - Philipp Oeser
- Fix #156601: Crash when relocating a linked library. - Bastien Montagne
-
Fix #156496: Add Intel workaround for
VKImageCache- Mark van de Ruit - Fix: GPU: Shader Tool: Match error message typo - Clément Foucault
- Fix: VSE: Text style presets missing location - Pablo Vazquez
- Fix: GPU: Shader assert condition not escaped in printf - Clément Foucault
- Fix #156415: Ensure an active UV map for meshes when applying a modifier - Martijn Versteegh
- Fix: Accidental change in versioning code - Falk David
- Fix: GPU: Shader Tool: Few issues with template instantiation - Clément Foucault
- Fix #156694: Rendering Anamorph with Mulit-Layer EXR cannot save file - Philipp Oeser
- Fix #141156: Broken Stereo view in EEVEE - Miguel Pozo
- Fix #156514: Crash in bpy.ops.preferences.keymap_restore - Brecht Van Lommel
-
Fix #156958: Tooltip cleanup for
conversion_thresholdproperty. - YimingWu - Fix #156483: Raycast node does not work properly if a direction is specified - илья _
- Fix: Grease Pencil: Draw Tool option to hide fill while drawing broken - Falk David
- Fix: GPU: Shader Tool: Incomplete template support - Clément Foucault
- Fix: Geometry Nodes: Color input soft limits are broken - Falk David
- Fix: Grammar error in recently added error message - Hans Goudey
- Fix: Experimental paint mode doesn't update certain UI elements for active objects - T0MIS0N
- Fix #143244: Geometry Nodes: Disable header UI for unsupported objects - MarcHamamji
- Fix #156993: Mask from Cavity creates inverted mask - Sean Kim
- Fix: BLF control character check used wrong codepoints for LF/CR - Campbell Barton
- Fix #155155: Vertex paint fails when no active color attribute exists - shivesh
- Fix #156854: GPU buffer, invalid Python buffer access - Campbell Barton
- Fix: BLF word-wrap boundbox returning negative values for empty content - Campbell Barton
- Fix: BLF used non-deterministic spacing for control characters - Campbell Barton
- Fix: BLF buffer draw position to match GPU path - Campbell Barton
- Fix: Sequencer can use potentially wrong color space - Sean Kim
- Fix: Ensure an active UV map for meshes when converting to mesh - Philipp Oeser
- Fix #156812: Error regarding online assets when dragging local assets - Philipp Oeser
- Fix #155844: Nondeterministic 3D Viewport Trackpad orbiting direction on Windows - Jonas Holzman
- Fix #154325: UI inconsistency in Principled BSDF Anisotropy label - Tibo Stans
- Fix: crash when pasting pose without objects in buffer - Christoph Lendenfeld
- Fix: Asset browser loading stuck with invalid remote libary - Julian Eisel
- Fix #156734: Cycles texture cache issue with missing derivatives - Brecht Van Lommel
- Fix (chat-reported) assert in depsgraph building of scene. - Bastien Montagne
- Fix #156955: Crash from node group asset meta data inconsistencies - Hans Goudey
- Fix #156840: Freestyle edge type section not working correctly - Le Gia Bao
- Fix #156766: EEVEE: Shadow: Performance regression - Clément Foucault
- Fix #156481: EEVEE: Some node combinations can corrupt the Raycast node across the entire scene - Miguel Pozo
- Fix #157071: Sculpt brush toggle doesn't reset in certain situations - Sean Kim
-
Fix: Silence
rna.definewarning forcavity_factor- Sean Kim - Fix #157033: BLF combining characters invalid position & kerning error - Campbell Barton
- Fix: combining character support for 3D text - Campbell Barton
- Fix #155442: Node input percentage slider displays with incorrect minimum - Pratik Borhade
- Fix #156885: glTF: UI: Enable UIList filter for glTF Collections - Julien Duroure
- Fix: glTF: Fix preparation of additional textures - Julien Duroure
- Fix #156989: Make the eraser and the startcap/endcap dropdowns work on the same attribute type - Martijn Versteegh
- Fix #156273: Normalization in Graph Editor error with flat curves - Christoph Lendenfeld
- Fix #155019: Text objects in edit mode won't select characters by material slot - Tariq-Sulley
- Fix: (unreported) Core: Invalid memory access at readfile time. - Bastien Montagne
- Fix #156995: Pose library applies to bones hidden by collection - Christoph Lendenfeld
- Fix: Benchmark: Missing output keys - Jeroen Bakker
- Fix #156603, #155951: Cycles corner normals not preserved through displace - Brecht Van Lommel
- Fix #156996: String To Curves node Truncate mode has no Height input - Kévin Dietrich
- Fix #156668: Support initialization of the color and float value nodes in shaders on a drag-search creation - илья _
- Fix #156815: Crash after asset browser refresh with no 3D view visible - Hans Goudey
- Fix: Geometry nodes realize instances material index mapping - Hans Goudey
- Fix: cattrs was not listed as a dependecy for the bpy module - Sebastian Parborg
- Fix #154317: Eevee: Floating point precision issue with Mix node - Simon Thommes
- Fix: String sockets in compositor leak memory - Omar Emara
- Fix #127707: wrong parameters passed to NodeTreeInterfaceSocket.from_socket & init_socket - Kévin Dietrich
- Fix #156438: constraints missing decimal digits when values are >= 100 - Henry Jiang
- Fix: crash when loading file from within asset library - Sybren A. Stüvel
- Fix #155953: Geometry nodes bake paths not reported via foreach_path - Hans Goudey
- Fix #156810: Restore local scissor clipping for curve and scope widgets - Tibo Stans
- Fix #157126: Crash at startup when compiled with SDL support - Campbell Barton
- Fix #157131: Editor tooltip overlapping title text - Le Gia Bao
- Fix: Benchmark: Python error when output not found - Jeroen Bakker
- Fix #142229: Disable texture pool on Qualcomm 8cx Gen 3 devices. - Jeroen Bakker
- Fix: collection preview lost when writing via bpy.data.libraries.write() - Sybren A. Stüvel
- Fix: Targetless IK Stretch - paulhanson2000
- Fix #157072: Renaming Keyframed Shapekey results in frozen Animation - Philipp Oeser
- Fix #156765: Prevent crashes whan an empty attribute is read as single value - Martijn Versteegh
- Fix #157176: EEVEE: Wrong Camera Shift Y in viewport - Le Gia Bao
- Fix: Node Editor: memory leak when creating inputs via socket drag/drop - Kévin Dietrich
- Fix: Node tools data-block inputs broken - Hans Goudey
- Fix: Silence previous declaration warning - Sean Kim
- Fix #157219: Bevel modifier weight attribute search broken - Hans Goudey
- Fix: Attribute unique name issue in edit mode - Hans Goudey
- Fix: VSE: Preview gizmos don't draw when active scene differs from sequencer scene - John Kiril Swenson
- Fix #157220: Crash when painting in image editor without image - Sean Kim
- Fix #157213: Sculpt: Crash when stroke starts and ends in empty area - Sean Kim
- Fix: Texture & Image paint doesn't work - Sean Kim
- Fix #157233: Disable 'Input Attribute Toggle' for String type - Le Gia Bao
- Fix: Benchmark: Error when rendering graphs - Jeroen Bakker
- Fix #157000: Vertex paint operations also affect hidden geometry - Philipp Oeser
- Fix #156871: Blender crashes with path guiding in viewport or final render - sherholz
- Fix #156094: Symmetrize armature duplicates FCurves of Action Constraints - Christoph Lendenfeld
- Fix: GPU: Shader resource check had mismatched variable names - Clément Foucault
- Fix #156892: EEVEE: Regression in max allowed number of samplers - Miguel Pozo
- Fix: GPU mipmaps: Incorrect usage flags - Jeroen Bakker
- Fix: GPU: Shader Tool: Exception thrown on windows in - Clément Foucault
- Fix part of #156911: link hierarchy root when linking liboverride ID. - Bastien Montagne
- Fix part of #156911: validate liboverride hierarchy roots after ID deletion. - Bastien Montagne
- Fix: EEVEE: Remove previous layer bindings for opaque - Miguel Pozo
- Fix: ED_view3d_draw_offscreen null dereference - Miguel Pozo
-
Fix #157210: GPU: Move
VKTexturePoolallocations to discard pool. - Mark van de Ruit - Fix #157237: Overlay: UV-grid drawn incorrectly - Le Gia Bao
- Fix #156275: Overlay: push grid z-order to far above UDIM tiles - Mark van de Ruit
- Fix: Assets: Null pointer dereference in case of assert failure - Julian Eisel
- Fix: Asset saving potentially saving to online library cache - Julian Eisel
- Fix: EEVEE: Volume indirect lighting is disabled by default - Clément Foucault
- Fix #157183: Crash if Group Output has unused output connected - Omar Emara
- Fix: Assert during drag operation near edges of tree view - Pratik Borhade
- Fix #157309: Grease Pencil misses "Assign Shortcut" for brushes - Philipp Oeser
- Fix: incorrect types size in library flag reading - Bastien Montagne
Functions
- Functions: move bit math to multi-function registry - Jacques Lucke
- Functions: make conversion from untyped to typed field more explicit - Jacques Lucke
Geometry Nodes
- Geometry Nodes: optimize division by single value - Jacques Lucke
- Geometry Nodes: remove field category and just sort by name instead - Jacques Lucke
- 🔸 Geometry Nodes: Rename attribute node - Hans Goudey
- Geometry Nodes: Runtime RNA for node tree interface - Jacques Lucke
- 🔸 Geometry Nodes: support recursive closures - Jacques Lucke
- Geometry Nodes: Increase alignment of socket value type - Hans Goudey
- Geometry Nodes: Use single value for Distribute Points on Faces radius - Hans Goudey
- Geometry Nodes: Use MultiFunction to clamp point distribute densities - Hans Goudey
- Geometry Nodes: Support single value attributes in point distribution - Hans Goudey
- 🔸 Geometry Nodes: Optimize Distribute Points on Faces - Hans Goudey
- 🔸 Geometry Nodes: Optimize point distribution for single value density - Hans Goudey
GHOST/Wayland
- GHOST/Wayland: correct IME API usage - Campbell Barton
Git
- Git: Renormalize LFS modeling test blob file - Jonas Holzman
🔸 glTF
- glTF: Use socket identifier instead of socket name - Julien Duroure
- glTF: Enhance performance of disabling viewport - Julien Duroure
- glTF: Import: Support extensions on Accessor, BufferView, and Buffer types - Julien Duroure
- glTF: Allow Extensions to pass data through without __fixing - Julien Duroure
- glTF: Sort nodes by name - Julien Duroure
GPU
- GPU: SRGB mipmap generation - Jeroen Bakker
- GPU: Add remaining mipmap formats - Jeroen Bakker
- GPU: Shader Tool: Improve template support - Clément Foucault
- GPU: Shader Tool: Use template for callbacks - Clément Foucault
- GPU: Shader Tool: Refactor error reporting - Clément Foucault
- GPU: Shader Tool: Avoid warning in release builds - Clément Foucault
- GPU: Improve GPU_max_textures - Miguel Pozo
- GPU: Shader Tool: Remove dependency to regex - Clément Foucault
- GPU: Shader Tool: Emit dependency file - Clément Foucault
- GPU: Shader Tool: Support binary literals - Clément Foucault
Grease Pencil
- 🔸 Grease Pencil: Draw tool option for creating all curve types - Casey Bianco-Davis
- 🔸 Grease Pencil: Articulated Dots render (i.e. GPU dot placement) - Casey Bianco-Davis
I18N
- I18N: updated UI translations from git/weblate repository (37a1f0154ea48a8). - Bastien Montagne
- I18N: Updated UI translations from git/weblate repository (eb6ff3cc8fe19). - Bastien Montagne
LineArt
Linux
- Linux: Remove bundled libraries and resolve deadlock issues in package install script - Sebastian Parborg
- Linux: fix snap package spawning multiple process - Gaktan
Mask
- 🔸 Mask: speedup rasterization with more precise & faster bucketing - Aras Pranckevicius
Mesh
- 🔸 Mesh: Parallelize sampling utility functions - Hans Goudey
New global undo test
- New global undo test: fix mistake in code. - Bastien Montagne
Node Wrangler
- 🔸 Node Wrangler: Simplify selection scheme of "Reset Nodes" operator - quackarooni
- 🔸 Node Wrangler: Add "Swap Node" support for "Attribute" menu - quackarooni
Nodes
- 🔸 Nodes: UI: preserve pan and zoom levels when switching node groups - Habib Gahbiche
- 🔸 Nodes: init default group node width from node when creating group - Jacques Lucke
- 🔸 Nodes: NoOp defautls for Vector Math node when added using link drag search - Habib Gahbiche
- 🔸 Nodes: Defaults for Integer Math node depend on operation - Habib Gahbiche
- 🔸 Nodes: Initialize Integer node with reasonable defaults when added through link drag search - Habib Gahbiche
- 🔸 Nodes: Defaults for Vector Math node depend on operation - Habib Gahbiche
- 🔸 Nodes: Add Pixel socket subtype - quackarooni
- Nodes: Add versioning for interface socket indentifier sanitization - Falk David
Outliner
- 🔸 Outliner: Scroll active element into view - Pratik Borhade
Python
- PyAPI: Add the missing active_render property to the UVLoopLayers collection interface - Martijn Versteegh
- PyAPI: add NO_FALLBACK flag for BLF - Campbell Barton
- BPY: properly compute absolute path in bpy.data.libraries.write() - Sybren A. Stüvel
-
BPY: Expose some library info to
bpy.data.libraries.load()API. - Bastien Montagne
Refactor
- Refactor: Apply RAII for ColormanageProcessor - Sean Kim
- Rework memfile undo & pointer stability interactions. - Bastien Montagne
- Refactor: Functions: update field storage and API - Jacques Lucke
- Refactor: Avoid passing Context to compositor job - Omar Emara
- Refactor: Nodes: use UString for idname of node types - Jacques Lucke
- Refactor: ImBuf: Access byte and float buffers with functions - Hans Goudey
- Refactor: Geometry Nodes: use more static fields - Jacques Lucke
- Refactor: Geometry Nodes: align typed versions of GVolumeGrid and GField - Jacques Lucke
- Refactor: Use BKE conversions to check conversion validity - Omar Emara
- Refactor: Geometry Nodes: Split point distribution method code - Hans Goudey
- Refactor: WM: UI: Use typed function for button callbacks when binding ui::Block - Guillermo Venegas
- Refactor: Replace playback range macros - Christoph Lendenfeld
- Refactor: Remove unused pose lock flags - Christoph Lendenfeld
- Refactor: Use Vector instead of listbase in pose slide code - Christoph Lendenfeld
- Refactor: Move eAction_TransformFlags to tPChanFCurveLink - Christoph Lendenfeld
- Refactor: ImBuf: Clarify cropping ownership, don't change buffers in-place - Hans Goudey
- Refactor: Compare to and from colorspace when constructing processor - Sean Kim
- Refactor: Assign ColorSpace to float buffer for generated images - Sean Kim
- Refactor: Paint: Migrate automask settings to Paint struct - Sean Kim
- Refactor: Cycles: Replace uint4 SVM packing with structs - Brecht Van Lommel
- Refactor: UI: Make view item hovered query available for grid views - Julian Eisel
-
Refactor: Grease Pencil: Use
gather_next_available_fill_ids- Falk David - Refactor: Cycles: Split displacement normal code into smaller functions - Brecht Van Lommel
- Refactor: Nodes: Use UString for idnames in some API functions - Hans Goudey
- Refactor: Benchmark: Use keys to access data - Jeroen Bakker
- Refactor: Paint: Perform mixing in scene linear colorspace - Sean Kim
- Refactor: EEVEE: Add function for computing slab transmittance color - Weizhen Huang
- Refactor: Adjust paint stroke cleanup methods - Sean Kim
- Refactor: Rename structs and variables in pose slide code - Christoph Lendenfeld
- Refactor: Compositor: Wrap schedule in struct - Omar Emara
- Refactor: Core: Move LibOverride Runtime out of DNA. - Bastien Montagne
- Refactor: Cycles Raycast SVM node implementation - Sergey Sharybin
- Refactor: Core: GHash -> Map in liboverride code. - Bastien Montagne
Release tools
Revert
- Revert "Fix (unreported) Core: Invalid memory access at readfile time." - Bastien Montagne
Rigify
- Rigify: Fix #156222 Action Manager Channel Flip - Wayne Dixon
Tests
- Tests: Update imbuf template .blend file after recent changes - Jesse Yurkovich
- Tests: Sequencer GPU render tests - Aras Pranckevicius
- Tests: Add UI tests for quick effects - Julian Eisel
- Tests: Add test for node tools with data-block inputs - Hans Goudey
UI
- 🔸 UI: Preserve pan and zoom when changing images in image editor - Habib Gahbiche
-
🔸
UI: Node Wrangler: Use
layout.panelfor preference subsections - quackarooni - 🔸 UI: Add XYZ labels to array properties with PROP_PIXEL subtype - quackarooni
- 🔸 UI: Only show "To Circle" in mesh Edit mode - Aaron Carlisle
- 🔸 UI: Show categories tabs even when there is only one active - Guillermo Venegas
- 🔸 UI: Give shape key names more space - Pratik Borhade
- 🔸 UI: Hide color when generated type for new image is not "Blank" - John Kiril Swenson
- 🔸 UI: Synchronize new image dialog in Image Editor and 3D Viewport - Sean Kim
- UI: tighten poll for setting Clipping Region operator/indicator - Philipp Oeser
- 🔸 UI: Outliner: Color tag inheritance for new collections - Pratik Borhade
- 🔸 UI: Draw Collection icon with color tag in object properties panel - Pratik Borhade
- 🔸 UI: hide settings when Cycles sampling pattern does not use them - Philipp Oeser
- 🔸 UI: Use auto scroll in menus/popups only when cursor within block bounds - Guillermo Venegas
UV
- 🔸 UV: Add delimit seam to select linked operator - Eitan Traurig
VSE
- 🔸 VSE: More options for snapping image origins in preview - John Kiril Swenson
- 🔸 VSE: Prefetch several frames before current playhead - Aras Pranckevicius
- 🔸 VSE: Add a progress bar for "Render Audio" - Kévin Dietrich
Vulkan
- Vulkan: Implement GPU_finish - Jeroen Bakker
Win32
- Win32: Increase Buffer Sizes for ContextWGL clone_window - Harley Acheson
WM
- WM: Add unique identifiers to reports, and expose them to Python API - Cyrill Vitkovskiy
8 Comments
Yoo Pablo! Ciallo in Blender is awesome news 🔥
Oi, Pablo! I was missing a bunch of streams! I was having blender today withdrawals!
let's say my feature needs a little UI dropdown in material or render settings? are there any unspoken "best practices" that should be followed?
and in a less personal note- I remember last stream you noted blender tries not to step on addon devs' feet for features... but on the other hand, people often make addons where blender needs more help! when do you say "okay there's enough want here for some features" or "everyone uses these addons, we kinda need it in blender..." to implement what is a popular addon?
Hey Pablo, hope you having a great day, A few weeks ago someone asked something similar, but I dont think you got the main point:
Will there be any option for creating new Geometry nodes without recompiling Blender. Currently there is no way, not with python or C++. That makes it way harder to add custom Geo nodes (for simulation for example), as new Nodes need custom branches and Builds. That would make Blender more attractive for physics simulation developers
This would be amazing for like literally every part of blender lol
I mean most other parts of Blender are covered by the python api. Geo Nodes are not. implementing an API, especially if it were a new C++api just for geo nodes, would take time and maintance, but for performant geo nodes would be very beneficial.
Ola Pablo, did you get a answer to if eevee will be getting texture cache? hope the mip maps will be controllable like in game engines: distance control, compression type/quality. Cycles doesn't really have any customizable settings over its cache. Thanks Yous
currently, it's automatic based on pixel size and visibility, if I recall. the idea is that there is physically no difference in quality, just better optimization! it'll ideally only use the smaller ones if they make no visible difference.
I'd like to brute force it so I can get even better performance by having it fade to 512 after like 10 feet. Perfomance > Quality for my pc 🕯️also I tried it and was actually worse on my performance...