VULKAN - Blender Today LIVE #238
BlenderToday LIVE #238
Changelog
252 commits in total, of which 70 are fixes and 59 cleanup.
AUTHORS
- AUTHORS: update - Campbell Barton
Anim
- Anim: change "Sync to Selected" to "Copy Colors to Selected" - Sybren A. Stüvel
- Anim: change label "Edit Bone Color" to "Bone Color" - Sybren A. Stüvel
BLI
- BLI: assert that hash of key is the same after inserting it in hash table - Jacques Lucke
-
BLI: Support negative steps in
findlinkfrom- Falk David
BMesh
Build
- Build: support OpenColorIO 2.3 - Brecht Van Lommel
- Build: quiet GCC warning for extern/fmtlib - Campbell Barton
CMake
- CMake: cache the HAVE_BROTLI result - Campbell Barton
- CMake: quiet noisy messages on every run - Campbell Barton
- CMake: quiet undefined variable use with MOLTENVK on non-apple systems - Campbell Barton
- CMake: WITH_OPENGL_BACKEND=OFF excludes EGL/EPOXY includes & libraries - Campbell Barton
- CMake: add set_and_warn_incompatible macro, use for HEADLESS & GHOST_SDL - Campbell Barton
- CMake: allow WITH_GHOST_SDL with X11/WAYLAND backends - Campbell Barton
- CMake: use set_and_warn_incompatible macro - Campbell Barton
- CMake: fix building on macOS - Campbell Barton
- CMake: set_and_warn_incompatible now warns if arguments are undefined - Campbell Barton
- CMake: support building GHOST/X11 without OpenGL - Campbell Barton
Cleanuip
- Cleanuip: Make format - Jeroen Bakker
Cleanup
- Cleanup: Avoid combining signed and unsigned integers - Hans Goudey
- Cleanup: fix unused variable warning - Germano Cavalcante
- Cleanup: Make format - Harley Acheson
- Cleanup: quiet unknown escape sequence warning - Campbell Barton
- Cleanup: spelling in comments - Campbell Barton
- Cleanup: spelling in comments - Campbell Barton
- Cleanup: remove redundant call to GHOST_GetMainDisplayDimensions - Campbell Barton
- Cleanup: Make format - Jeroen Bakker
- Cleanup: reserve single quotes for enums - Campbell Barton
- Cleanup: spelling in comments - Campbell Barton
- Cleanup: avoid having to pass in a statically allocated variable - Jacques Lucke
- Cleanup: deduplicate more socket items code - Jacques Lucke
- Cleanup: deduplicate uilist layout code for zone socket items - Jacques Lucke
- Cleanup: Move select engine headers to C++ - Germano Cavalcante
- Cleanup: Make format - Harley Acheson
- Cleanup: make format - Brecht Van Lommel
- Cleanup: use exec/invoke suffix for operator callbacks - Campbell Barton
- Cleanup: defer import - Campbell Barton
- Cleanup: spelling in comments - Campbell Barton
- Cleanup: rename Global "lib" & "ima" for clarity - Campbell Barton
- Cleanup: include argument names in callbacks - Campbell Barton
- Cleanup: use static set for contains checks - Campbell Barton
- Cleanup: use the name 'ot' for wmOperatorType for unused arguments - Campbell Barton
- Cleanup: ensure trailing newline, delete trailing space - Campbell Barton
- Cleanup: quiet unused variable warning for CMake - Campbell Barton
- Cleanup: make format - Dalai Felinto
- Cleanup: Clarify the use of DrawDataList - Omar Emara
-
Cleanup: wmJobs: Use defined
startjobcallback type everywhere. - Bastien Montagne - Cleanup: Replace usage of old BLI_array macros with C++ types - Jesse Yurkovich
- Cleanup: make format - Jesse Yurkovich
- Cleanup: spelling in comments - Campbell Barton
- Cleanup: correct argument name (wasn't following conventions) - Campbell Barton
- Cleanup: wrap definitions across multiple lines, add struct identifiers - Campbell Barton
- Cleanup: use defines for superscript numbers in unit.cc - Campbell Barton
- Cleanup: Make format - Jeroen Bakker
- Cleanup: Remove unused attribute in GLShaderInterface - Jeroen Bakker
- Cleanup: correct typo in assertions - Campbell Barton
- Cleanup: Else after return in curves trim - Hans Goudey
- Cleanup: Remove redundant mask interpolation in dyntopo - Sergey Sharybin
- Cleanup: Simplify BMesh PBVH draw data upload - Hans Goudey
- Cleanup: move join geometry functionality to separate file - Jacques Lucke
- Cleanup: Simplify filling constant value per triangle in PBVH draw - Hans Goudey
- Cleanup: Use "vert" term consistently in mesh randomization debug code - Hans Goudey
- Cleanup: replace use of std::iota with more specific function - Jacques Lucke
- Cleanup: correct enums used as booleans - Campbell Barton
- Cleanup: sort CMake file lists - Campbell Barton
- Cleanup: various non-functional changes for C++ - Campbell Barton
- Cleanup: expand confusing conditional in panels poll function - Campbell Barton
- Cleanup: CMake formatting - Campbell Barton
- Cleanup: Return early to reduce indentation for 3D cursor drawing - Hans Goudey
- Cleanup: remove unused GHOST_kEventTimer - Campbell Barton
- Cleanup: replace strncpy with memcpy for buffers of a known size - Campbell Barton
- Cleanup: store const events in GHOST's event handling logic - Campbell Barton
- Cleanup: remove redundant window size assignment in playanim_window_zoom - Campbell Barton
- Cleanup: use early return to reduce right-shift in ghost_event_proc - Campbell Barton
- Cleanup: reduce template usage in join geometries code - Iliya Katueshenock
- Cleanup: Make format - Jeroen Bakker
- Cleanup: Remove a redundant increment operator - Peng Yan
- Cleanup: Extract attribute function to copy values from group to group - Hans Goudey
Compositor
Custom Properties
Cycles
- Cycles: oneAPI: use hardware cos - Xavier Hallade
- Cycles: Use tabulated Sobol for old files, for better compatibility - Alaska
- Cycles: Speed up principled BSDF when IOR = 1.0 - Brecht Van Lommel
Docs
- Docs: note why the wait cursor isn't set for the startup file - Campbell Barton
EEVEE Next
- EEVEE Next: Expose Thickness output - Miguel Pozo
EEVEE-Next
- EEVEE-Next: Fix DupliObject ObjectKey - Miguel Pozo
- EEVEE-Next: Split curve attributes to their own interface - Clément Foucault
- EEVEE-Next: Add world clip plane support - Clément Foucault
- EEVEE-Next: Fix Crash With Exact 128 Resources - Jeroen Bakker
- EEVEE-Next: Remove Unused Resources in Probe Capture Pipeline - Jeroen Bakker
- EEVEE-Next: Fix Reflection Probes Sampling - Jeroen Bakker
- EEVEE-Next: Tests support - Miguel Pozo
- EEVEE-Next: Several Fixes Reflection Probes Workflow - Jeroen Bakker
- EEVEE-Next: Fix DupliObject ObjectKey - Miguel Pozo
- EEVEE-Next: Make the shading lighting panel accessible - Clément Foucault
- EEVEE-Next: Refactor Lightprobe irradiance evaluation - Clément Foucault
- EEVEE-Next: Refactor Light evaluation - Clément Foucault
- EEVEE-Next: Split Thickness Approximation - Clément Foucault
- EEVEE-Next: Planar Probe Pipeline - Jeroen Bakker
Fix
- Fix: Geometry Nodes: dangling pointer in geometry after modifier evaluation - Jacques Lucke
- Fix: String Search: avoid casting match scores to int - Jacques Lucke
- Fix: #113084 VSE equalizer stutters when any strip is animated - Marcos Perez
- Fix: GPU compositor always returns first view - Omar Emara
- Fix: EEVEE-Next: Irradiance Grid baking - Miguel Pozo
- Fix: DRW: Missing braces around array constructor - Clément Foucault
- Fix: Noisy false-positive assert in dyntopo sculpt - Sergey Sharybin
- Fix: Debug build error from incorrect PBVH draw assert - Hans Goudey
- Fix: failing string search test - Jacques Lucke
- Fix: Workbench: Missing texture flag - Miguel Pozo
- Fix: dynamic node declaration is not resetting update-skip flag - Jacques Lucke
- Fix: False positive geometry randomization in split edges node - Hans Goudey
- Fix: Incorrect rotation from 3D cursor tool node - Hans Goudey
- Fix: instance reference does not compare equal to copy of itself - Jacques Lucke
- Fix: don't set repeat zone output twice - Jacques Lucke
- Fix: EEVEE-Next: Crash Removing Last Planar Probe - Jeroen Bakker
- Fix: EEVEE-Next: Planar Reflection During Sculpting - Jeroen Bakker
- Fix: Workbench: resolve_shader_cache initialization - Miguel Pozo
- Fix: EEVEE-Next: Nvidia compilation error - Miguel Pozo
- Fix: EEVEE-Next: Planar Probes First Sample - Jeroen Bakker
- Fix: Incorrect early return in recent cleanup - Hans Goudey
- Fix #102591: Improvements to Context Menu Path Operators - Harley Acheson
- Fix #106760: Cycles OSL boolean socket not working - coyo_t
- Fix #107594: Phantom cursor motion when resizing windows under Wayland - Campbell Barton
- Fix #109907: Cycles correlation issue with LCG random numbers - Brecht Van Lommel
- Fix #110183: Cycles: Numerical issues with distant area light sampling - Lukas Stockner
- Fix #110666: Copy built-in attributes for masked curves type conversion - Iliya Katueshenock
- Fix #110874: Anim: Theme confusion with 'Pose Bone' label - Sybren A. Stüvel
- Fix #111666: Hide Mouse in Redo Panel Inputs - Harley Acheson
- Fix #112018: increase AgX LUT resolution - Nathan Vegdahl
- Fix #112164: Draw: Circle select tool low performance - Miguel Pozo
- Fix #112377: Edit Source missing info in the status bar - Campbell Barton
- Fix #112463: crash or invalid results importing USD uniform colors - Charles Wardlaw
- Fix #112548: Assert in object parenting liboverride code. - Bastien Montagne
- Fix #112580: Limit Constraint with 'Affect Transform' not working properly in 'World Space' - Germano Cavalcante
- Fix #112580: Limit Constraint with 'Affect Transform' not working properly in 'World Space' - Germano Cavalcante
- Fix #112630: Skip grave and acute quotations when selecting - Pratik Borhade
- Fix #112649: Crash loading early 2.80 blend file without a scene collection. - Bastien Montagne
- Fix #112931: Cycles mesh light sampling artifacts - Brecht Van Lommel
- Fix #112948: Cycles: Principled Sheen over Coat should use Coat normal - Lukas Stockner
- Fix #112978: MacOS no longer has a path associated with the window - Germano Cavalcante
- Fix #112978: MacOS no longer has a path associated with the window - Germano Cavalcante
- Fix #112991: crash switching from Hydra Storm viewport to other renderer - Brecht Van Lommel
- Fix #113014: Improved sorting to keep node group outputs above inputs - Lukas Tönne
- Fix #113022: Disabled menu item's text uses inner color - Pratik Borhade
- Fix #113034: Cycles sheen breaks with low roughness - Brecht Van Lommel
- Fix #113044: Reset Fonts When Loading New Files - Harley Acheson
- Fix #113058: Cycles: Bump mapping causing dark edges with subsurface - Lukas Stockner
- Fix #113092: take highlighted part of search item into account in more places - Jacques Lucke
- Fix #113095: deduplicate attributes in search - Iliya Katueshenock
- Fix #113128: Socket hide value not copied to group input - Hans Goudey
- Fix #113130: Versioning error in snap type in animation editors - Germano Cavalcante
- Fix #113134: Use a valid socket in node groups for custom nodes - Lukas Tönne
- Fix #113142: Sculpt fairing operators don't update normals - Hans Goudey
- Fix #113154: Hang double-clicking on UI elements outside a text field - Campbell Barton
- Fix #113159: improve best word match heuristic in string search - Jacques Lucke
- Fix #113178: .dae file with collection-less armature crashes on import - Sybren A. Stüvel
- Fix #113186: The Render Result attribute "has_data" is always False - Sergey Sharybin
- Fix #113194: show the single value for sockets of type field - Vasilis-Milios
- Fix #113206: add-on unregister() not called on exit - Campbell Barton
- Fix #113210: Custom socket declarations require idname reference - Lukas Tönne
- Fix #113280: Incorrect display of Cycles border render while rendering - Sergey Sharybin
- Fix #113319: crash with out of bounds index in curve sample node - Jacques Lucke
- Fix #113320: 'Automatic Constraint' not working in 2D editors - Germano Cavalcante
- Fix #113387: Memory leak with Separate by Loose Parts - Jesse Yurkovich
- Fix #113416: never show inspection index warning when set to zero - Jacques Lucke
- Fix #87160: Clean Keyframes only works if channels are selected - Christoph Lendenfeld
- Fix 'Automatic Constraint' appearing in statusbar although not supported - Germano Cavalcante
- Fix (unreported) crash in 'startup.blend' GP default update code. - Bastien Montagne
- Fix Cycles SVM not using IOR Level for Subsurface entry - Alaska
- Fix EEVEE-Next: Broken compilation on Metal - Clément Foucault
- Fix GHOST_SystemWayland::disposeContext assuming an EGL context - Campbell Barton
- Fix I/O debug message printed without debugging enabled - Brecht Van Lommel
- Fix Split Strips operator not showing shortcut - Sergey Sharybin
- Fix VSE retiming usability issues - Richard Antalik
- Fix assert in PBVH face set drawing code - Sergey Sharybin
- Fix build warning in previous commit - Richard Antalik
- Fix building WITH_GHOST_DEBUG without NDOF - Campbell Barton
- Fix building WITH_PYTHON=OFF - Campbell Barton
- Fix crash caused by bl_keymap_validate clearing key-maps - Campbell Barton
- Fix error clearing the windows libdecor state on failure on Wayland - Campbell Barton
- Fix failure to remove temp-dir when initializing GPU backend fails - Campbell Barton
- Fix for wobbly volume object outlines in the viewport - Lukas Tönne
- Fix glitch resizing windows with LIBDECOR on Wayland - Campbell Barton
- Fix incorrect sizeof argument to memcmp in EEVEE's ObjectKey comparison - Campbell Barton
- Fix invalid collection length for dummy unit collection - Campbell Barton
- Fix light linking state being lost on collection copy and duplicate - Sergey Sharybin
- Fix redundant window activation/deactivation events under Wayland - Campbell Barton
- Fix snap to endpoint being represented as loose point - Germano Cavalcante
- Fix typo in documentation for BMVertSeq.new - Colin Basnett
- Fix uninitialized variable use accessing the screen size under Wayland - Campbell Barton
- Fix use after free error in recent check for EGL context - Campbell Barton
- Fix writing past struct bounds of GHOST_TEventImeData - Campbell Barton
Functions
- Functions: extract remapped-params to make it reusable - Jacques Lucke
- Functions: add lazy-function graph input/output getter methods - Jacques Lucke
- Functions: enable multi-threading when many nodes are scheduled at once - Jacques Lucke
GHOST/Wayland
- GHOST/Wayland: remove window activation on tablet proximity in - Campbell Barton
- GHOST/Wayland: remove WITH_GHOST_WAYLAND_DBUS - Campbell Barton
GPv3
- GPv3: Initial drawing tool - Falk David
-
GPv3: Add
DrawingTransforms- Falk David - GPv3: Insert keyframe when drawing if no key exists at current frame - Pratik Borhade
Geometry Nodes
- Geometry Nodes: refactor how side effect nodes are set up - Jacques Lucke
- Geometry Nodes: deduplicate code to deal with dynamic socket amounts - Jacques Lucke
- Geometry Nodes: deduplicate zone socket item operators in Python - Jacques Lucke
- Geometry Nodes: use socket name instead of identifier as debug names - Jacques Lucke
- Geometry Nodes: use declaration builder for repeat zone - Jacques Lucke
- Geometry Nodes: use declaration builder for simulation zone - Jacques Lucke
I18N
- I18N: Updated UI translations from weblate/git repo (67dc845a5b11). - Bastien Montagne
- I18N: UI Translation: Add Tamil and enable Bulgarian, Greek and Nepali. - Bastien Montagne
- I18N: Updated UI translations from weblate/git repo (927ffa172fe7cc58). - Bastien Montagne
I18n
- I18n: extract and disambiguate a few messages - Damien Picard
- I18n: translate node panel titles - Damien Picard
- I18n: translate bones' 'Move to Collection' operator menu. - Damien Picard
- I18n: fix translation of Grease Pencil 3.0 layer names - Damien Picard
- I18n: make new bones and bone collections' names translatable - Damien Picard
License headers
- License headers: add SPDX header - Campbell Barton
Math
-
Math: Add
from_up_axismatrix creation function - Clément Foucault
Metal
Nodes
- Nodes: Include rotation socket type in anonymous attribute inferencing - Lukas Tönne
- Nodes: deduplicate code to create declarations for socket type - Jacques Lucke
- Nodes: move socket declaration methods to base declaration builder - Jacques Lucke
- Nodes: pass node declaration builder to dynamic declaration function - Jacques Lucke
- Nodes: use better default for color sockets - Jacques Lucke
Overlay-Next
- Overlay-Next: Fix Copy Uninitialized Texture - Jeroen Bakker
Python
- Python: Update BGL Deprecation Warning - Jeroen Bakker
Realtime Compositor
- Realtime Compositor: Implement Keying Screen node - Omar Emara
Refactor
- Refactor: use const event data, use static_casts - Campbell Barton
Revert "EEVEE-Next
- Revert "EEVEE-Next: Fix DupliObject ObjectKey" - Clément Foucault
Sculpt
- Sculpt: Add vertex interpolation for the dynamic topology - Sergey Sharybin
- Sculpt: Draw color attribute during dynamic topology sculpting - Hans Goudey
- Sculpt: Improve support of face sets with dyntopo - Sergey Sharybin
Select Engine
- Select Engine: Use C++ vector types for arrays - Germano Cavalcante
Test fix
- Test fix: Node groups outputs now placed before inputs - Lukas Tönne
Tests
-
Tests: Add test to open all blendfiles in current
/lib/tests/repository. - Bastien Montagne - Tests: add dedicated directory for principled BSDF tests - Brecht Van Lommel
Tools
- Tools: set the number of jobs to the CPU count for various utilities - Campbell Barton
UI
- UI: Add descriptions to a few geometry nodes - Arye Ramaty
- UI: start search in menu when pressing spacebar - Jacques Lucke
- UI: Recognize CJK punctuation when selecting text - ChengduLittleA
- UI: correct names for sequencer modifiers - Campbell Barton
- UI: Remove empty space in tool settings header with toolbar visible - Julian Eisel
- UI: display invalid cache as striped lines in the timeline - Leon Schittek
- UI: use recent search for weighting only if the query is short - Jacques Lucke
USD
- USD: Improve camera import/export and round-tripping - Denis Kovacs
Vulkan
- Vulkan: Make Maintenance4 Extension Optional - Jeroen Bakker
- Vulkan: Wayland Windowing - Jeroen Bakker
- Vulkan: Enable as Experimental Option - Jeroen Bakker
WM
- WM: move last press time from the wmEvent into wmWindow - Campbell Barton
- WM: use time-stamps from events for double-click check - Campbell Barton
WM Jobs
- WM Jobs: Refactor all worker status variables into a single shared struct. - Bastien Montagne
Workbench
- Workbench: Fix: Performance Regressions - Miguel Pozo
macOS
- macOS: Enable secure coding for restorable state - Sergey Sharybin
- macOS: fix issues building without OpenGL headers - Campbell Barton
11 Comments
Hi Pablo. Thank you for all your hard work. It's Glen Rowell the 3D line drawing guy in Japan lol.
Is there a way to type in a distance and just move the mouse to select a direction. I have to use the minus mark when typing distances now when drawing lines or cubes but it would be quicker just typing in the distance and then moving the mouse, like in SketchUp.
I also wanted to let you know the mesh line tool in Edit mode is working a lot better in 4.1 compared to previous versions. It used to be difficult to close shapes with faces but now almost everything closes properly. Thanks everyone for that. CAD is a lot easier now. I hope the Blender team adds a line tool to the base tools one day.
I'll start translating Japanese for Blender if you like as well.
oi, Pablo! BCON1 is always fun to watch!
This isn't my question, this week- a friend asked me about IK systems! They work great for humans, but anything with more than 2 joints is a bit of trouble- IK wants to limit the movement of one end of the chain, and people are coming up with very complex setups to get around this. Is there anyone looking at IK algorithms or making them more extensible, like by allowing multiple poles, or stiffness per joint? As well, adding a pole makes the first joints floppier, and the last joints stiffer, for 3+ bones, it seems.
for me- the vector curves and color curves in the shader editor does not have the spline math fix yet! That thing where new points on a steep spline doesn't properly inherit its curve- just found it! i.imgur.com/0zqKEJi.png (yes, it's current!)
projects.blender.org/blender/blender/issues/113455 made! feel free to test it, and rip your hair out. this knowledge is a cognitohazard. curves are not smooth. enjoy the pain!
Hello Pablo, is there any news regarding vr and blender? i remember that there was a call for a dev by Daniel lara in the last conf... Have you seen the free bird project? if there is nothing new regarding vr, maybe this could be a project that the institute could help sponsor?
I'm interested in doing VR as well
Hey Pablo Sorry if I'm a bit late I just wanted to know why microdisplacement features are still under EXPERIMENTAL in Cycles, I just don't get it. There must be a good reason right ? All the best
Hi Can you add up in Blender 4.0 Set snap base option to move rotate and scale tool on the T panel? Also Can you make a toggle in preference menu so users can switch between default behavior on tools like move -"G", rotate "R" and scale - "S"
Hello Pablo! I have two questions.
Does the EEVEE-next improve the handling of object with transparency? They are really wonky in classic EEVEE.
Any ETA on the improvement of texture layers? I bet the Project Gold guys need those... please? I need some hope hahah. I am high on copium when it comes to the Layered Textures.
AskNK just released a video on EEVEE Next yesterday and I think he mentions improvements in this sector
Hello Pablo.
How can we snap the axis when modeling? Sorry if it's a basic question.
Hi Pablo! I had a question about packing UV's in Geometry Nodes.
I think in the last release (Blender 3.5?) we had an update to the Uv packing algorithm that allowed Blender to take into account the negative space and actual shapes of UV Islands. This feature works great when using the standard Uv Editor, but when I use Geometry Nodes, it seems to default to the old style of uv packing where everything is calculated based on the bounding box, instead of the actual volumes of the uv islands. Is this intended? And if so, is there a way of getting around this to use the new uv packing algorithm in geometry nodes?
Thank you!