PERFORMANCE - Blender Today LIVE #226
Changelog
Total: 188 commits, of which 46 are fixes and 48 cleanup.
Categories: 3D View, Anim, Animation, Asset Browser, Assets, Attributes, BKE_unit, BLI, BLI_path, CMake, Cleanup, Core, Curves, Cycles, Deps, Fix, GHOST/Wayland, GPU, Geometry Nodes, Gizmo, HIP, I18N, I18n, ID RNA, Keymap, LibOverride, Make missing libdecor only fail in strict build mode, Mesh, Metal, Multires, Nodes, Overlay, Realtime Compositor, Refactor, Revert "Fix, Sculpt, Subdiv, Suport relative path option per-asset library, UI, USD, UV, Use native path separators for run-time generated paths, VFont, Volumes, Vulkan, WM, WindowManager.
3D View
- 3D View: Refactor navigation operators - Germano Cavalcante
Anim
-
Anim: add simple unit test for stability of
sort_time_fcurve()- Sybren A. Stüvel
Animation
- Animation: add function for deduplicating FCurve keys - Sybren A. Stüvel
Asset Browser
- Asset Browser: Let "Clear Asset" act on entire selection - Julian Eisel
Assets
Attributes
- Attributes: Allow attribute API to create non-deleteable attributes - Hans Goudey
- Attributes: Add function to rename attribute - Jacques Lucke
BKE_unit
- BKE_unit: assert index access is in range - Campbell Barton
BLI
- BLI: Add utility method to check if CPPType matches multiple types - Jacques Lucke
- BLI: Add "take front" and "take back" methods to bit spans - Hans Goudey
- BLI: Add bit span operations and bounded bit spans - Hans Goudey
- BLI: add utility methods for serialization - Jacques Lucke
- BLI: support weak users and version in implicit sharing info - Jacques Lucke
- BLI: Allow different integer types when filling span indices - Hans Goudey
- BLI: Add methods to generic spans to retrieve size in bytes - Hans Goudey
- BLI: extract MapItem type to simplify iterating over map items - Jacques Lucke
BLI_path
- BLI_path: add string size arguments to sequence encode/decode functions - Campbell Barton
CMake
- CMake: only generate & install the man-page when it may be outdated - Campbell Barton
Cleanup
- Cleanup: Improve readability of Mask node flags - Omar Emara
- Cleanup: use term "Delete" for sequence strips - Campbell Barton
- Cleanup: spelling in comments, remove annotations that aren't validated - Campbell Barton
- Cleanup: format - Chris Blackbourn
- Cleanup: Rename StrokeCache.original to .accum - Joseph Eagar
- Cleanup: format - Chris Blackbourn
- Cleanup: Fix typo in mesh sample function name - Hans Goudey
- Cleanup: Simplify and deduplicate mesh sampling code - Hans Goudey
- Cleanup: Simplify passing empty anonymous attribute set - Hans Goudey
- Cleanup: Add note about adding attributes while iterating - Hans Goudey
- Cleanup: Use helper function to sample normals when adding curves - Hans Goudey
- Cleanup: Implement "make available" for extrude node individual input - Hans Goudey
- Cleanup: Use short2 for custom normals, simplify access - Hans Goudey
- Cleanup: Remove unnecessary vertex normal custom data masks - Hans Goudey
- Cleanup: Extract function to make extend node declaration - Hans Goudey
- Cleanup: Add not equal operator to compute constext hash - Jacques Lucke
- Cleanup: format - Philipp Oeser
- Cleanup: assign variables & use 'match' to avoid redundant lookups - Campbell Barton
- Cleanup: Remove global mesh threading size macro - Hans Goudey
- Cleanup: spelling in comments - Campbell Barton
- Cleanup: prefer nullptr inside extract_mesh.hh - Hong Shin
- Cleanup: Use simpler C++ types in mesh corner normals code - Hans Goudey
- Cleanup: use term "space" in blend file read/write callbacks - Campbell Barton
- Cleanup: Remove timer in node, improve comment - Hans Goudey
- Cleanup: format - Chris Blackbourn
- Cleanup: Fix spelling in subdiv function name - Hans Goudey
- Cleanup: Avoid storing redundant information in corner normals task data - Hans Goudey
- Cleanup: Remove redundant namespaces in mesh normals code - Hans Goudey
- Cleanup: Standardize mesh corner normals code - Hans Goudey
- Cleanup: remove redundant casts - Campbell Barton
- Cleanup: use ptrdiff_t in assertion to prevent overflow - Campbell Barton
- Cleanup: fix build errors/warnings - Jacques Lucke
- Cleanup: store less data per node that is already stored together - Jacques Lucke
- Cleanup: correct exception message & remove unused iterator variable - Campbell Barton
- Cleanup: remove redundant modal keymap items for 3D view operations - Campbell Barton
- Cleanup: spelling in comments - Campbell Barton
- Cleanup: quiet unused function warning WITH_OPENSUBDIV=OFF - Campbell Barton
- Cleanup: Declare field context variables const - Hans Goudey
- Cleanup: Simplify UV Packing storage of temporary layout - Chris Blackbourn
- Cleanup: format - Chris Blackbourn
- Cleanup: make format - Brecht Van Lommel
- Cleanup: remove removed variable from CMake config - Brecht Van Lommel
- Cleanup: make format. - Michael Kowalski
- Cleanup: Avoid unnecessary & misleading Outliner context function call - Julian Eisel
- Cleanup: Type conversions in node.cc - illua1
- Cleanup: Use consistent enum type in header - Hans Goudey
- Cleanup: fix compiler warning - illua1
- Cleanup: Add missing domain priority for mask nodes - Omar Emara
Core
- Core: Add sub-types for float-type custom properties - Colin Basnett
- Core: Add ASAN support to BLI_mempool - Joseph Eagar
Curves
- Curves: Avoid retrieving arrays many times - Hans Goudey
Cycles
- Cycles: solve compilation errors with OptiX 7.7 - Aldo Bleeker
- Cycles: use intrinsics for fast_rint - Xavier Hallade
- Cycles: Support newer version of sse2neon - Sergey Sharybin
- Cycles: add HIP RT device, for AMD hardware ray tracing on Windows - Sahar A. Kashi
- Cycles: MetalRT: Don't apply local object transform if it is baked - Michael Jones
Deps
- Deps: Updating to Open PGL 0.5.0 - Sebastian Herholz
- Deps: Bump version of sse2neon - Sergey Sharybin
Fix
- Fix: Missing normalization for sampled normals when adding curves - Hans Goudey
- Fix: Wrong logic in recent extrude node fix - Hans Goudey
- Fix: Extrude node propagates all anonymous attributes - Hans Goudey
- Fix: Compile error in debug build in normals code - Hans Goudey
- Fix: Knife tool does not interpolate vertex customdata in interior cuts - Philipp Oeser
- Fix: group node inputs always requested unnecessarily - Jacques Lucke
- Fix: Wrong crease accessed for multires reshape - Hans Goudey
- Fix #102594: USD Import: mask multiple prim paths. - Michael Kowalski
- Fix #104722: Outliner renaming uses wrong item - Julian Eisel
- Fix #106289: Copy optimal display edges in mirror, array modifiers - Hans Goudey
- Fix #106945: IES file parsing failures - Jesse Yurkovich
- Fix #106965: HSV/HSL conversion differ from CPU compositor - Omar Emara
- Fix #107095: Spikes during multires reshape propagation - Hans Goudey
- Fix #107186: Curve assets don't generate preview images - Philipp Oeser
- Fix #107261: bpy.types.Text (region_as_string/region_from_string) crash - Philipp Oeser
- Fix #107262: snap source of type Active Element sometimes fails - Germano Cavalcante
- Fix #107273: Group input is not listed in the node search - Pratik Borhade
- Fix #107274: Crash zooming out with imperial unit-system - Campbell Barton
- Fix #107294 : Node Editor "Frame All/Selected" ignore Smooth View - Philipp Oeser
- Fix #107314: OS key stuck when switching windows with GNOME/Wayland - Campbell Barton
- Fix #107390: Image transformation in VSE is very slow - Richard Antalik
- Fix #107431: tag node tree topology as changed when changing socket order - illua1
- Fix #107443 movie clip fails to load - Campbell Barton
- Fix #97530: Overlapping Content Causing Region Scrolling - Harley Acheson
-
Fix (unreported) broken code in
BKE_collection_object_cache_free. - Bastien Montagne - Fix (unreported) potential missing deletion of some linked liboverrides during resync. - Bastien Montagne
- Fix 3D text selection & cursor mismatch when not on curve - Harley Acheson
- Fix 3D text selection & cursor mismatch with text-on-curve enabled - Campbell Barton
- Fix Auto Depth not working - Germano Cavalcante
- Fix CUDA/OptiX compilation error in Cycles - Sergey Sharybin
- Fix Cycles MetalRT not working after recent oneAPI changes - Brecht Van Lommel
- Fix Python error when trying to call the Search Menu with no object - Damien Picard
- Fix apply as shape operator accessing properties that don't exist - Campbell Barton
- Fix bl_run_operators test running without a window context - Campbell Barton
- Fix broken 'replace object in collection' code. - Bastien Montagne
- Fix buffer overflow in BKE_image_ensure_tile_token use - Campbell Barton
- Fix crash accessing the image clipboard in background mode - Campbell Barton
- Fix curve-sculpt invoke function accessing the wrong brush - Campbell Barton
- Fix error in recent navigation refactor - Germano Cavalcante
- Fix further (unreported) issues in object collection cache cleanup code. - Bastien Montagne
- Fix intersection distance offset in Cycles - Sergey Sharybin
- Fix mistake in Cycles float4 pow - Brecht Van Lommel
- Fix more crashes attempting to run operators in unexpected contexts - Campbell Barton
- Fix negative index in text cursor drawing - Campbell Barton
- Fix potential buffer overflow in internal pointcache logic - Campbell Barton
- Fix potential buffer overflow with FileListEntryPreview::filepath - Campbell Barton
- Fix potential buffer overflows from invalid string size arguments - Campbell Barton
- Fix several issues in recent changes to ID swap and lib_query. - Bastien Montagne
- Fix snap package failing to launch on some systems after core20 update - Brecht Van Lommel
- Fix strict warnings in external code - Sergey Sharybin
- Fix string lookups asserting or failing with unsupported collections - Campbell Barton
- Fix use-after-free error in sculpt color filter - Campbell Barton
- Fix various crashes attempting to run operators in unexpected contexts - Campbell Barton
GHOST/Wayland
- GHOST/Wayland: remove keyboard modifier mismatch warning suppression - Campbell Barton
- GHOST/Wayland: use GHOST modifiers, not XKB without an active windows - Campbell Barton
GPU
- GPU: Ensure Absolute Ratio During SDF-Widget Drawing - Jeroen Bakker
Geometry Nodes
- Geometry Nodes: use new BitGroupVector to find attribute propagation sets - Jacques Lucke
- Geometry Nodes: Index of Nearest: Use grain size based on tree sizes - Hans Goudey
- Geometry Nodes: Index of Nearest: Use span for non-single ids - Hans Goudey
- Geometry Nodes: Use implicit sharing in store/capture attribute nodes - Hans Goudey
- Geometry Nodes: support outputting field without computing full node - Jacques Lucke
Gizmo
- Gizmo: Add anti aliasing to transform constraints - Yonatan Maor
HIP
- HIP: hipew and build system updates for new APIs, including HIP-RT - Sahar A. Kashi
I18N
- I18N: Updated UI translations from svn trunk (r6490). - Bastien Montagne
I18n
- I18n: improve geometry nodes field tooltips - Damien Picard
ID RNA
- ID RNA: Add accessor to the 'IS_MISSING" status tag of IDs. - Bastien Montagne
Keymap
- Keymap: cancel 3D viewport operations using Escape - Campbell Barton
LibOverride
Make missing libdecor only fail in strict build mode
- Make missing libdecor only fail in strict build mode - Sebastian Parborg
Mesh
- Mesh: Reduce memory usage calculating custom normals - Hans Goudey
- Mesh: Allocate custom normal spaces in array - Hans Goudey
- Mesh: Reduce memory corner normals memory usage and simplify threading - Hans Goudey
Metal
- Metal: Resolve runtime issues with texture views - Jason Fielder
Multires
- Multires: Use cached loose edge information - Hans Goudey
Nodes
- Nodes: Support adding multiple nodes from search menu - Hans Goudey
- Nodes: Make spacings unitless in String to Curves node - Damien Picard
Overlay
- Overlay: do not draw grids with undefined units - Germano Cavalcante
Realtime Compositor
- Realtime Compositor: Implement Mask node - Omar Emara
- Realtime Compositor: Prioritize Viewer output node - Omar Emara
- Realtime Compositor: Optimize image textures - Omar Emara
- Realtime Compositor: Implement Corner Pin node - Omar Emara
- Realtime Compositor: Split cache into containers - Omar Emara
- Realtime Compositor: Implement Texture node - Omar Emara
Refactor
- Refactor: path normalize now collapses multiple '..' directories at once - Campbell Barton
- Refactor: Deduplicate code in graph_slider_ops.c - Christoph Lendenfeld
- Refactor: move keyframe-adding function from RNA to editors/animation - Sybren A. Stüvel
Revert "Fix
Sculpt
- Sculpt: Fix #105303: improper setting of SculptCache.original - Joseph Eagar
- Sculpt: Fix #107092: ss->filter_cache not being null'd on free - Joseph Eagar
Subdiv
- Subdiv: Optimize coarse position extraction with cache - Hans Goudey
Suport relative path option per-asset library
- Suport relative path option per-asset library - Dalai Felinto
UI
- UI: Measure/Ruler Text Position - Harley Acheson
USD
- USD: Release ImBuf objects during export - Jesse Yurkovich
UV
- UV: Tuning rotating to minimum square during packing - Chris Blackbourn
- UV: Improve packing efficiency by rotating to minimum square - Chris Blackbourn
- UV: Fix uv packing overflow with fraction margin method - Chris Blackbourn
- UV: Add new packing option, scale_to_fit - Chris Blackbourn
- UV: Simplify storage and logic for UV Packing - Chris Blackbourn
Use native path separators for run-time generated paths
- Use native path separators for run-time generated paths - Campbell Barton
VFont
- VFont: Corrections to Cursor When on Curve - Harley Acheson
Volumes
- Volumes: Generate proper fog volume in Mesh to Volume node - Erik Abrahamsson
Vulkan
- Vulkan: Texture Unpacking - Jeroen Bakker
- Vulkan: Index Buffer - Jeroen Bakker
- Vulkan: Conversions between Blender and Vulkan Enums - Jeroen Bakker
- Vulkan: Add streaming buffers. - Jeroen Bakker
- Vulkan: Command Buffer. - Jeroen Bakker
- Vulkan: Uniform Buffer - Jeroen Bakker
- Vulkan: Shader Interface Attribute Extraction. - Jeroen Bakker
- Vulkan: Initialize Device Capabilities. - Jeroen Bakker
- Vulkan: Construct a Vulkan 1.2 Context. - Jeroen Bakker
WM
- WM: avoid Python exceptions in poll functions - Campbell Barton
WindowManager
- WindowManager: Context Creation - Jeroen Bakker
16 Comments
¡Hola community! ¡Hola Pablo!
good icons from blender 2.80 or newer versions, let's use those from 2.79. I'm sorry to have to tell you this, but the blender community, when there is no custom emoji blender icons, people put as similar emoji as possible that have nothing to do with the connection.
¡Gracias!
Hello Pablo, Are there any plans to add a proper UV synchronization mode in Blender, similar to what has already been implemented in Maya, C4D, and RizomUV? It's extremely inconvenient to work with a large number of objects in the current synchronization mode. When editing objects, I can't see all the UV islands. If I switch to synchronization mode, almost all add-ons stop working or give errors. When hovering over a UV island, it doesn't highlight in the viewport. There's an add-on called uv_highlight by BenjaminSauder for Blender 2.7x, here's a link to it: github.com/BenjaminSauder/uv_highlight . There are examples of it in action there. Will such a feature be added to Blender?
Hey Pablo!
This might sound a bit rude so sorry for that in advance, but please don't include Mantaflow in the new node-based simulation system. Mantaflow is probably great for scientific simulation for its accuracy but it's really doesn't look good enough for CGI/VFX. It's kinda slow and buggy and kinda outdated. And I think the development of Mantaflow itself has stopped a while ago. I could be wrong but there are thousands of papers and modern frameworks for smoke sim, liquid sim, unified sim etc, so dropping mantaflow wouldn't be really much of a loss for Blender in the long term because IMO physics in Blender is bit lacking currently.
Also, the python API in Blender is great but python has its limitations. So, would there be a C++ API for Blender to make addons? Because most other high-end plugins for other softwares are all written in C++ and some plugins let you replace some of the core functionality of a DDC without rewriting the core codebase.
Also, this is my personal opinion, maybe you guys should take some more time for the Blender 4.0 release. Maybe it should have some major fundamental changes when it comes to UI UX and espically addition of long awaited features like light linking, grouping, node based texturing and some other requests from RCS etc. 4.0 sounds huge so I guess people would be expecting a massive changes IMO.
Thanks.
Hi Pablo. Don't know if you read the comments after the show, but you asked what could use the same treatment as "Clear Asset" in terms of operating on multiple selsctions. Select Objects and Select Hirarchy in the outliner could realy use this treatment. For instance, if you select multiple collections and right click to select the objects of the collections it seems to only select the objects in the topmost collecton, not even the "active" collection. This would be so useful if you need to quickly select all objects of two collections that are not "next to" each other, I would basicaly use this every day if it was working like expected :) Thanks for a greay show btw :)
Hola pablo i was wondering if the animation 2025 project has started development. Just curious let the developers take their time to develop this awesome software.
hey Pablo, how to join the design team? I want to design buttoms and Stuff, maybe you have enough designers but maybe not so how to apply for it?
Hopefully time for one more question? Any chance Cycles will support Intel Iris Xe graphics in the future?
Hey pablo please make some love on archviz especially the 2d lines and documentation work just like rhino 3d
Hey Pablo!
I was wondering if you plan on continuing to improve blender.community? I was thinking in particular of two potential improvements:
Just some ideas, sorry if they've been mentioned before :) Ty Pablo
Some words of appreciation, optional read: Thank you for commitment to the community, keeping up the Blender Today livestreams! Communication with the community is invaluable. Speaking of myself, I've watched these livestreams almost every week during covid, learning more and more about how Blender and software development works. Since then I've switched to reading the diffs/pull requests directly, so haven't kept up with the BT questions lately.
Hi pablo
When adding a video to the Texture node, there is no option to match the frame rate of the video ,however this option is available when adding a texture inside the texture properties.
Hello Pablo ! How are you ?
I was wondering, are the little dynamic teasers like the 2.9 one a thing that will continue for the next blender versions or is it totally abandonned ?
I'm talking about this: youtube.com/watch
Hi pablo
I would like to know if there is any plan to change the interface when blender starts. I mean that when you run blender appears a console and a blank window. With respect to the speed at which it starts, it seems strange to me that sometimes it starts fast and sometimes it takes a long time. Definitely the speed with which it starts depends on the addons you have installed and other things that influence but wouldn't it be more aesthetic if it was like other programs that have a progress bar with a splash screen.
Hey Pablo, Will we get light linking in 3.6? Or do we have to wait until Blender 4.x?
hola Pablo I have one question. first of all, I hope you have a good day. my question is the bpy.ops.wm.save_mainfile already an incremental saving system? Because I build an addon for Blender that acts like the Davinci resolve live save feature if you don't know it saves your project while you work incrementally
HOLA PABLO, I love and appreciate everything you do! It's been a while since I've used blender. I was moving and now I'm trying to get back into it. Two questions
Any word on a USA Bcon/BCON LA?
I know they're working on doing brush assets. But do you know if multi layer editing for textures is being worked on as well?
oi, Pablo!
Is there a chance we could get the old smoke sim back as a black box solver? I was having trouble getting mantaflow to work, and ended up redownloading 2.79, and exporting a VDB sequence, to get my VFX looking good. While mantaflow works well enough, it doesn't react as conceptually as blender smoke does to force fields, and its density/generation/noise has some wonky effects and errors that break a sim...