GIFT for Blender đ! - Blender Today LIVE #243
Changelog
225 commits in total, of which 52 are fixes and 79 cleanup.
3D Paint Brush
- 3D Paint Brush: Disable Node Splitting - Jeroen Bakker
Anim
- Anim: store BoneCollections in a flat array - Nathan Vegdahl
BMesh
- BMesh: Improve performance when copying attributes in same mesh - Hans Goudey
- BMesh: Use simpler element copy within the same mesh - Hans Goudey
- BMesh: don't make threading threshold dependent on debug/release build - Brecht Van Lommel
- BMesh: Optimize copying attributes from many elements at once - Hans Goudey
- BMesh: optimize attribute copying by reusing BMCustomDataCopyMap - Campbell Barton
Build
- Build: replace Blender specific DEBUG by standard NDEBUG - Brecht Van Lommel
- Build: enable mismatched-tags warning for CLANG - Campbell Barton
CMake
- CMake: Allow asserts to be enabled for release builds. - Ray Molenkamp
- CMake: suppress warning in flag removing macros - Campbell Barton
- CMake: Fix Compiling Shader Builder on macOS - Jeroen Bakker
- CMake/MSVC: Remove stale OIIO sse flag - Ray Molenkamp
Compositor
Cycles
- Cycles: Make OIDN on GPU use the existing SYCL queue - Stefan Werner
- Cycles: update OSL to work with version 1.13.5 - Brecht Van Lommel
- Cycles: update to work with OpenVDB 11 - Brecht Van Lommel
Docs
- Docs: Add button to report python API documentation issue - Aaron Carlisle
EEVEE Next
- EEVEE: Lookdev HDRI Spheres - Jeroen Bakker
- EEVEE-Next: Scene sync fixes and improvements - Miguel Pozo
- EEVEE-Next: Add tile deferred lighting - CleÌment Foucault
- EEVEE-Next: HiZBuffer: Add support for 2nd layer - Clément Foucault
- EEVEE-Next: Refactor Raytracing pipeline - Clément Foucault
GHOST/SDL
- GHOST/SDL: use SDL timestamps for events - Campbell Barton
GHOST/Wayland
- GHOST/Wayland: use monotonic timer for getMilliSeconds - Campbell Barton
- GHOST/Wayland: skip more involved timestamp conversion where possible - Campbell Barton
- GHOST/Wayland: update cursor names - Campbell Barton
- GHOST/Wayland: correct fix for #106040 - Campbell Barton
GHOST/X11
- GHOST/X11: Support X11 time-stamps - Campbell Barton
GPU
- GPU: Add flag when using explicit framebuffer loadstore state - Jason Fielder
- GPU: Shader Builder Filter - Jeroen Bakker
GPv3
- GPv3: Drawing Placements - Falk David
- GPv3: Overlay: Show edit lines option - Casey Bianco-Davis
- GPv3: Overlay: Only show visible and editable materials - casey bianco-davis
- GPv3: Render to Image - Falk David
- GPv3: Clean loose points operator - Pratik Borhade
Geometry Nodes
- Geometry Nodes: Face Group Boundaries node speedup - Iliya Katueshenock
I18N
- I18N: Enable Belarusian language in UI translations. - Bastien Montagne
- I18N: Updated UI translations from git/weblate (f26db8403b919d). - Bastien Montagne
IO
- IO: Add initial support for File Handlers registration - Guillermo Venegas
LibOverride
- LibOverride: Refactor some part of hierarchy handling code. - Bastien Montagne
License headers
- License headers: add SPDX headers - Campbell Barton
Mesh
Metal
- Metal: Remove old small-tiles optimization - Jason Fielder
- Metal: Add support for attachment-less framebuffer - Jason Fielder
Nodes
- Nodes: add node callback for extra info that is drawn above node - Jacques Lucke
PBVH
- PBVH: Use C++ Bounds type for node bounds - Hans Goudey
PyAPI
- PyAPI: support overriding the "screen" with Context.temp_override() - Campbell Barton
- PyAPI: support global window areas with Context.temp_override - Campbell Barton
- PyAPI: micro optimization accessing keyword arguments for bpy functions - Campbell Barton
Refactor
-
Refactor: remove unused argument to
BKE_constraint_remove_ex()- Sybren A. StĂŒvel -
Refactor: BKE: Move
BKE_libraryheader to full CPP. - Bastien Montagne - Refactor: move ANIM_bone_collections.h into the .hh file - Sybren A. StĂŒvel
- Refactor: combine x and y for insert_vert_fcurve into float2 - Christoph Lendenfeld
- Refactor: Refactor nla_strip_get_color_inside method - Nate Rupsis
- Refactor: Pass Keyframe settings as arguments - Christoph Lendenfeld
- Refactor: replace NanoVDB SampleFromVoxels by own code - Brecht Van Lommel
- Refactor: replace NanoVDB kernel side implementation by own code - Brecht Van Lommel
Sculpt
- Sculpt: Separate invert visibility operator from face sets - Hans Goudey
- Sculpt: Simplify and slightly improve undo update tagging - Hans Goudey
- Sculpt: Reimplement face sets visibility operator - Hans Goudey
- Sculpt: Make hide poly pointer in sculpt session const - Hans Goudey
- Sculpt: Refactor face sets storage and access - Hans Goudey
Shaders
- Shaders: change default IOR from 1.45 to 1.5 - Brecht Van Lommel
UI
- UI: fix and improve a few messages - Damien Picard
VSE
- VSE: make Gamma Cross effect 4x faster - Aras Pranckevicius
- VSE: make Glow effect 6x-10x faster - Aras Pranckevicius
- VSE: make Wipe effect 6x-20x faster - Aras Pranckevicius
- VSE: Implement file based copy paste - Sebastian Parborg
Valgrind
- Valgrind: suppress warnings with MemPool & MEM_* trailing padding - Campbell Barton
Vulkan
- Vulkan: Add Debug Name To Descriptor Sets - Jeroen Bakker
Miscellanous
- Make the preference option "remap relative" apply for all save operations - Sebastian Parborg
- editorconfig: add HTML entry - Campbell Barton
- BLI_idprop: simplify string creation logic, support unterminated strings - Campbell Barton
Fix
- Fix: Draw: Volume coordinates regression - Miguel Pozo
- Fix: Debug build error after recent PBVH bounds change - Hans Goudey
- Fix: ensure function does not create geometry instances in all cases - Jacques Lucke
- Fix: GPv3: Strokes with hidden materials are editable - casey bianco-davis
- Fix: Protect against access of empty geometry bounds optional - Hans Goudey
- Fix: USD import: Improve texture color space choice - Charles Wardlaw
- Fix: Incorrect use of Vector resize in mesh_fair - Hans Goudey
- Fix: Send more appropriate notification at end of USD/Alembic import - Jesse Yurkovich
- Fix: GPv3: Missing add layer option in menu when list is empty - Pratik Borhade
- Fix: GPv3: Memory leaks in curve fitting functions - Falk David
- Fix: GPv3: Crash switching to draw mode for empty object - Pratik Borhade
- Fix: GPU: Avoid GPUMaterial/Pass collisions between engines - Miguel Pozo
- Fix: GPv3: Crash when drawing - Falk David
- Fix: EEVEE-Next: Deferred tile stencil compilation - Miguel Pozo
- Fix: Build error with MSVC - Ray Molenkamp
- Fix: GPv3: Compiler error - Falk David
- Fix: Build error and format fixes after previous cleanup - Hans Goudey
- Fix: Typo in recent commit to BMesh copy function - Hans Goudey
- Fix: update collada export code to use the new bone collections array - Nathan Vegdahl
- Fix: Assert When Using Shader Builder - Jeroen Bakker
- Fix "project_source_info" use with clang - Campbell Barton
- Fix #100784: Truncate Text with Ellipsis inside Number Inputs - Harley Acheson
- Fix #107465: Compositor Texture node produces artifacts - Omar Emara
- Fix #112394: 'Absolute Grid Snap' not working correctly plane constraint - Germano Cavalcante
- Fix #114760: new attribute does not get active for some domains - Philipp Oeser
- Fix #114828: Don't rebuild outliner tree when frame scrubbing - Christoph Lendenfeld
- Fix #114838: Force Full Redraw When Duplicating Areas - Harley Acheson
- Fix #114951: Waveform drawn incorrectly in strips with hold offset - Richard Antalik
- Fix #115253: NDOF zoom-speed depends on selected objects - Campbell Barton
- Fix #115288: EEVEE-Next: Horizon Scan light leaking - Clément Foucault
- Fix #115289: EEVEE-Next: Negative scale lights - Miguel Pozo
- Fix #115330: Animation not updating when cancelling modal operators in the Graph Editor - Christoph Lendenfeld
- Fix #115562: Issues with color picker and color values near 1 - Brecht Van Lommel
- Fix #115594: EEVEE Next: Crash with VDB - Miguel Pozo
- Fix #115657 : Bone's tail is still selected after invert selection - Philipp Oeser
- Fix #115662: Outliner slows down many geometry operations in big scenes - Philipp Oeser
- Fix #115667: Sculpt face sets draw wrong with subdivision modifier - Philipp Oeser
- Fix #115678: Padding not applied correctly when framing keyframes - Christoph Lendenfeld
- Fix #115683: Crash with IK constraint - Christoph Lendenfeld
- Fix #115715: Boolean behaves as if the object is on it's origin - Z-Map
- Fix #115716: Empty Grease Pencil Keymap Warning - Falk David
- Fix #115775: Curve object to mesh conversion crash - Hans Goudey
- Fix #115779: Compositor Split node factor 0 still shows the other image - Habib Gahbiche
- Fix #115786: EEVEE-Next: Texture paint delayed redraw - Miguel Pozo
- Fix #115811: Wayland picker cursor isn't displayed - Campbell Barton
- Fix #115813: Handles get broken when scaling annotation keyframes in Dope Sheet - Germano Cavalcante
- Fix #115815: Include Category name in Enum Row Calculation - Harley Acheson
- Fix #115827: Follow active quad fails with an assertion - Campbell Barton
- Fix #115830: Poly Build tool crash with clipping borders - Philipp Oeser
- Fix #115856: Sculpt Face sets drawing sometimes uses wrong default - Hans Goudey
- Fix #115859: Cryptomatte node considers preview channels - Omar Emara
- Fix #115887: Fallback tool only tweaks single elements - Campbell Barton
- Fix #115895: Surface drawing artifacts at borders - Falk David
- Fix #115909: Walk Navigation Up and Down is interrupted by WASD - Pratik Borhade
- Fix #115924: Sculpt: Draw face sets not working on first try - Hans Goudey
- Fix #115933: Assert with invalid time-stamp on X11 with XIM input - Campbell Barton
- Fix #115937: Context override fails to restore screen - Campbell Barton
- Fix #115938: BLF Handle Negative Left-Side Bearings - Harley Acheson
- Fix #115979: Object bounds display type doubled size - Hans Goudey
- Fix #40009: Win32 Use Message Time for Events not Current Time - Harley Acheson
- Fix (unlikely) integer overflow error in writedata(..) - Campbell Barton
- Fix (unreported): Set Color Tag broken when inside meta strip - ok_what
- Fix (unreported) missing Viewlayer update in liboverride code. - Bastien Montagne
- Fix Context.temp_override restoring freed values on exist - Campbell Barton
- Fix Context.temp_override(..) use with temporary screens - Campbell Barton
- Fix Cycles versioning error after displacement_method removal - Brecht Van Lommel
- Fix asserts is last commit - Germano Cavalcante
- Fix bpy.context.copy() including evaluated_depsgraph_get - Campbell Barton
- Fix failing assert when hiding header with asset shelf available - Julian Eisel
- Fix invalid cursor move time-stamp on WIN32 - Campbell Barton
-
Fix reported build breaking in BSD/clang after change to
BLI_renamecode. - Bastien Montagne - Fix sequencer modifier operators crashing with no active strip set - Campbell Barton
Cleanup
- Cleanup: Remove unused BoundBox flag - Hans Goudey
- Cleanup: Fully remove legacy displacement_method property - Jesse Yurkovich
- Cleanup: compiler warning - Brecht Van Lommel
- Cleanup: Improve comments in BKE mesh types header - Hans Goudey
- Cleanup: Store more mesh runtime data with unique_ptr - Hans Goudey
- Cleanup: Avoid passing context to shrinkwrap blenkernel function - Hans Goudey
- Cleanup: quiet warning - Campbell Barton
- Cleanup: Make format - Jeroen Bakker
- Cleanup: use existing bone iterator function - Nathan Vegdahl
- Cleanup: Anim, remove accidentally committed declaration - Sybren A. StĂŒvel
- Cleanup: Use FunctionRef for PBVH batch drawing - Hans Goudey
- Cleanup: Remove remnants of old color layer preview system - Hans Goudey
- Cleanup: Remove unused modifier functions - Hans Goudey
-
Cleanup: run
make format- Sybren A. StĂŒvel -
Cleanup: GPv3: Use
foreach_range- Falk David - Cleanup: Move BMesh headers to C++ - Hans Goudey
- Cleanup: BMesh: Add function for copying within the same BMesh - Hans Goudey
- Cleanup: Remove unusd custom data function - Hans Goudey
- Cleanup: Remove unnecessary size argument to CustomData free function - Hans Goudey
- Cleanup: Simplify common logic for BMesh attribute copy - Hans Goudey
- Cleanup: update comment, reference issue number - Campbell Barton
- Cleanup: minor correction to exception message, add doxy section - Campbell Barton
- Cleanup: Resolve inconsistent struct vs. class declaration warning - Hans Goudey
- Cleanup: Avoid unnecessary indentation level in region overlap function - Julian Eisel
- Cleanup: clarify #ifndef checks in trailing #endif comments - Campbell Barton
- Cleanup: remove redundant define checks - Campbell Barton
- Cleanup: format, function style cast - Campbell Barton
- Cleanup: spelling in comments, strings - Campbell Barton
- Cleanup: tweak error checks for time access for GHOST/X11 - Campbell Barton
- Cleanup: Remove unused sculpt functions - Hans Goudey
- Cleanup: Move sculpt_face_set.cc to C++ namespace - Hans Goudey
- Cleanup: Use C++ vector to store temporary sculpt undo update tags - Hans Goudey
- Cleanup: Avoid repeatedly retrieving object in sculpt undo nodes - Hans Goudey
- Cleanup: Move RNA enum definitions to smaller scope - Hans Goudey
- Cleanup: Use enum class for some sculpt enums - Hans Goudey
- Cleanup: Move mesh visibility and selection flushing to C++ namespace - Hans Goudey
- Cleanup: Add utility to compare non-indexed and indexed span values - Hans Goudey
- Cleanup: remove GHOST_System::getMilliSeconds - Campbell Barton
- Cleanup: reference a const wl_cursor from Wayland - Campbell Barton
- Cleanup: replace unordered_map for cursor lookups with an array - Campbell Barton
- Cleanup: Removed redundant code in OIDN integration - Werner, Stefan
- Cleanup: Fix missing declaration warning - Hans Goudey
- Cleanup: Resolve mix of bool and char warning - Hans Goudey
- Cleanup: make format - Brecht Van Lommel
- Cleanup: Write sculpt mask directly when restoring data before stroke - Hans Goudey
- Cleanup: consistent indentation for HTML templates, wrap long lines - Campbell Barton
- Cleanup: Change some view3d projection functions to use C++ types - Hans Goudey
- Cleanup: Move sculpt undo system to C++ namespace - Hans Goudey
- Cleanup: remove unused variables - Campbell Barton
- Cleanup: minor formatting tweaks - Campbell Barton
-
Cleanup: GPv3:
retrieve_editable_*functions - Falk David - Cleanup: remove unused variable, invalid comment & typo - Campbell Barton
- Cleanup: Use references for sculpt undo nodes - Hans Goudey
- Cleanup: Store sculpt undo nodes with C++ Vector - Hans Goudey
- Cleanup: Sculpt explicitly retrieve mesh face visibility attribute - Hans Goudey
- Cleanup: Move majority of sculpt paint module to C++ namespaces - Hans Goudey
- Cleanup: Return sculpt node automasking data by value - Hans Goudey
- Cleanup: Use consistent "mesh" variable name (replace "me") - Hans Goudey
- Cleanup: Remove excessive use of optimized IndexMask functions - Hans Goudey
- Cleanup: Use simpler positions name in curves selection functions - Hans Goudey
- Cleanup: VSE waveform drawing variables - Richard Antalik
- Cleanup: make read_file_as_buffer into a generic utility function - Campbell Barton
- Cleanup: avoid redundant read(..) call in read_file_as_buffer - Campbell Barton
- Cleanup: minor changes to read_file_as_buffer logic - Campbell Barton
- Cleanup: replace WM_cursor_set with WM_cursor_wait for image copy/paste - Campbell Barton
- Cleanup: indent readme.html - Campbell Barton
- Cleanup: spelling in comments - Campbell Barton
- Cleanup: add missing header, sort files - Campbell Barton
- Cleanup: minor style tweaks, surround ELEM by parenthesis - Campbell Barton
- Cleanup: match header/source argument naming - Campbell Barton
- Cleanup: remove redundant "contains" checks before erasing items - Campbell Barton
- Cleanup: avoid pass-by-value on vector argument for ContextVK - Campbell Barton
- Cleanup: correct assert to avoid null pointer deference - Campbell Barton
- Cleanup: use const variables & arguments, remove unused assignments - Campbell Barton
- Cleanup: pass BMesh by pointer instead of reference - Campbell Barton
- Cleanup: Remove unused BoundBox functions - Hans Goudey
- Cleanup: rename bArmature.collections -> bArmature.collections_legacy - Nathan Vegdahl
- Cleanup: Move opensubdiv C-API headers to C++ - Hans Goudey
- Cleanup: GPv3: render engine - Falk David
12 Comments
Hi Dalai, happy holiday season! Hope you're doing well.
I was wondering why the change to the rotation socket from the vector socket? Is it because the rotation socket is quaternion which maybe has some advantages vs Euler? Would love to know, thanks!
what are the showstoppers form getting us finally a solution for multires shape keys (sculpting layers)?
Hi Dalai, I really like the improvements in VSE, and I even thought about moving my piplane to VSE instead of Premiere, the only thing that is missing in VSE for me now is render performance, Premiere renders video several times faster than VSE. That said, I remember there was a VSE 2.0 project to improve performance projects.blender.org/blender/blender/issues/78986 , it's still not all boxes checked, is the project finished or will it continue?
Will the be and update for BoltFactory addon to simplify working with real world dimensions?
Hi Dalai. Nice to meet you. If it's okay, can you please spend more time on the questions section? We can check what has been fixed or updated easily but the questions section offers us a way to find out more about things if they haven't been covered. I love seeing UI updates as well. The icons and lists on the right are a bit small compared to the tool icons on the left. A setting to change the text size of the right menus would be a quick fix for changing the size of the lists. As I have a 2.5K monitor I'm happy with the current size though accessibility improvements are welcomed. Nice to see Pablo is in the chat. Have a wonderful holiday Pablo. I found a few bugs in the blender-4.1.0-alpha+main.ce81bdc2840e-windows.amd64-release. I'll report them through the software after but also just say them here. â When I hit F12 and bring up the render screen, then click view, I can show options with the check boxes. The problem is the data isn't saved and after closing the render window and clicking F12 again to open it the view settings all reset. ⥠In Edit Mode > With the Mesh: Snap_Utilities_Line add-on, I can easily draw lines and when I lock the axis to z and draw a line of line of 1 or -1 the line moves both ways properly. Same as with -2 or 2 but when I type in 10 or -10 the line only moves in the positive direction. Towards 10. -10 moves towards 10 as well instead of in the correct direction. This make it difficult to do 3d CAD or draw 3D triangular shapes properly. Bug fixes would be greatly appreciated. One day, please also add the line mesh tool to the default tools please. We should be able to easily draw what we want in Blender without having to load a line tool with a strange name like Mesh: Snap_Utilities_Line. Maybe it should be renamed Mesh: Line_Tool.
Hello Dalai!
Any chance we see a crease aware subdivision and/or smooth modifier/operation anytime soon?
Hi Dalai! Thank you for keeping up Blender Today at the end of the year, it's a pleasure.
As far as the benchmark is concerned, the score increased up to version 3.6 and then decreased with version 4.0. Do you know why? for example with the RTX 3090 opendata.blender.org/benchmarks/query/
Hello. Happy holidays. About USD support. The USD Branch has some advanced features when exporting USD scenes like the ability to export Cycles shading networks as USD materials. Is there a plan to include this in the Master Branch? Is this something that can be extracted from the USD Branch as an addon that can be installed in Master? Gracias! A
Oi, Dalai!~
customization is massive!... and it's a bit of an issue. We need a "basic customization" menu, to go with the super granular one. a number of things in blender are the same color by default. they should be grouped in a simplified theme editor by default.
other than that, we still need nodes with vector curves in their ui to use correct math for geo nodes (and material) accuracy projects.blender.org/blender/blender/issues/113455 ... I'm not sure who might handle that, but if you know, feel free to bug them about it! it seems small, but accuracy is key for math-based workflows!
Hello Dalai! One of the biggest issues I had with blender 2.8 that still persists to this day are the flat unshaded icons in the user interface. They may look clean from a concept point of view but they pose an accessibility issue for people like me. Is there a way to introduce shading back to the icons or add my own custom icons?
Hi Dalai Felinto I have question about snapping.
I am particularly interested in these functionalities in the context of arranging objects and their rotations relative to other objects in the scene.
I think there is one bug : If object A rotation is not apply to be 1.000 then If I have 2 objects and go in object A in edit mode and take one face and face snap to second object B and I have align rotation to target selected then this face is snapping with rotation of face im pointing + object A rotation... so rotation is wrong untill I apply rotation of this object A ... but I dont want to do that. Do snapping should consider object rotation if I snap in edit mode?
Is it possible in Blender to have surface snapping in edit mode take into account the inverse direction of the normals of the attracted surface to another surface to second object? Now We can only copy Z direction but no -Z direction if I operate in edit mode.
Additionally, is it possible for snapping to take into account the averaged rotation of more than one object with Z rotation normals? For instance, if I enable snapping and use the shortcut key 'A' to select multiple points, and if I have the Z normals rotation feature enabled, is it possible for Blender to consider the avaraged rotation of the selected Z directions of points/edges/faces?
Those features could be great
Thanks for Great Work. M
Hey :) Question about the user interface. Why are there still global transform settings among Active tool settings? Seems very misplaced. Seems like a no-brainer to put these next to the other global transform settings, no?
Image from devtalk: devtalk.blender.org/uploads/default/original/3X/4/d/4db78b239437ddbe525e332a84cb08965d60c3d8.png
There's also a "Workspace" panel among the active tool settings, which makes no sense too, and a lot more stuff that doesn't belong there in other modes...