SIMULATION NODES - Blender Today LIVE #227
Changelog
Total: 216 commits, of which 44 are fixes and 79 cleanup.
Allow renaming F-curve modifier
- Allow renaming F-curve modifier - Pratik Borhade
Allow select range in animation editor
- Allow select range in animation editor - Pratik Borhade
Animation
- Animation: Clean up "Key" menu in Graph Editor - Christoph Lendenfeld
Assert ImBuf & Main paths never use blend-file relative prefix
- Assert ImBuf & Main paths never use blend-file relative prefix - Campbell Barton
Asset Browser
- Asset Browser: Let "Clear Asset" act on entire selection - Julian Eisel
Assets
BKE_idprop
- BKE_idprop: string size argument consistency, fix off by one errors - Campbell Barton
BKE_image
- BKE_image: simplify UDIM tile label access, return string length - Campbell Barton
BLI
- BLI: Remove clamping from generic span slicing - Hans Goudey
BLI_fileops
- BLI_fileops: change BLI_dir_create_recursive string size handling - Campbell Barton
BLI_path
- BLI_path: correct buffer size argument - Campbell Barton
- BLI_path: use module prefix for BLI_filename_make_safe - Campbell Barton
- BLI_path: disallow passing NULL arguments to BLI_path_split_dir_file - Campbell Barton
- BLI_path: add a size argument to BLI_path_frame - Campbell Barton
BLI_string
- BLI_string: call BLI_string_debug_size from functions with a buffer size - Campbell Barton
- BLI_string: move DEBUG_STRSIZE check into a macro, check sizes after nil - Campbell Barton
- BLI_string: add BLI_strncat, replace use of strcat that could overflow - Campbell Barton
BLI_string_utils
- BLI_string_utils: BLI_uniquename no longer accepts NULL defname - Campbell Barton
Build
- Build: use versioned TBB library to avoid conflicts with Linux system libs - Brecht Van Lommel
Bump blender file format subversion
- Bump blender file format subversion - Pratik Borhade
CMake
- CMake: add WITH_STRSIZE_DEBUG option, RNA support - Campbell Barton
Cleanup
- Cleanup: Add API comment on side-effect of file browser query function - Julian Eisel
- Cleanup: Move file cache lookup into function - Julian Eisel
- Cleanup: remove dead code - Jacques Lucke
- Cleanup: avoid BLI_path_basename when the filename is known - Campbell Barton
- Cleanup: correct path size argument - Campbell Barton
- Cleanup: quiet compiler warnings - Campbell Barton
- Cleanup: formatting - Lukas Stockner
- Cleanup: replace BLI_strncpy with memcpy when the size is known - Campbell Barton
- Cleanup: spelling in comments - Campbell Barton
- Cleanup: use of the term 'len' & 'maxlen' - Campbell Barton
- Cleanup: use of the term 'len' in BLI_string_utf8, BLI_string_utils - Campbell Barton
- Cleanup: don't use an inline function which is passed as an argument - Campbell Barton
- Cleanup: use the name of the CMake WITH_STRSIZE_DEBUG for the define - Campbell Barton
- Cleanup: Convert float to double during uv unwrap - Chris Blackbourn
- Cleanup: fix warnings - Chris Blackbourn
- Cleanup: Remove redundant ImBuf channels assignment - Jesse Yurkovich
- Cleanup: format - Chris Blackbourn
- Cleanup: format - Chris Blackbourn
- Cleanup: Metal: Better function name and comments for buffer bindings - Clément Foucault
- Cleanup: Avoid nested conditional blocks in WM-jobs code - Julian Eisel
- Cleanup: replace UTF8 string copy macro with function - Campbell Barton
- Cleanup: quiet clang-tidy char subscript warning - Campbell Barton
- Cleanup: quiet warning - Campbell Barton
- Cleanup: de-duplicate internal function for file/directory split - Campbell Barton
- Cleanup: use function style casts & nullptr in C++ code - Campbell Barton
- Cleanup: spelling, use term polygons in polygon callbacks - Campbell Barton
- Cleanup: remove inline pointcache extension stripping - Campbell Barton
- Cleanup: format - Campbell Barton
- Cleanup: Move remaining modifier files to C++ - Hans Goudey
- Cleanup: pass a const context to menu UI funcitons - Campbell Barton
- Cleanup: quiet "undef" compiler warning - Campbell Barton
- Cleanup: Comment formatting for preview image enums definitions - Julian Eisel
- Cleanup: Avoid nesting (use early exit) in icon code - Julian Eisel
- Cleanup: formatting - Jeroen Bakker
- Cleanup: remove unused member variable - Jacques Lucke
- Cleanup: reduce indentation with early returns in allocimbuf - Campbell Barton
- Cleanup: avoid calling stat twice in BLI_dir_create_recursive - Campbell Barton
-
Cleanup: naming in BLI_path, reserve
lenfor string length - Campbell Barton - Cleanup: convert node_exec.h to C++ - Hong Shin
- Cleanup: Reduce indentation when setting custom normals - Hans Goudey
- Cleanup: Miscellaneous changes in corner fan normal calculation - Hans Goudey
- Cleanup: Move attribute_math to proper blenkernel namespace - Hans Goudey
- Cleanup: Rename field input classes to match UI names - Hans Goudey
- Cleanup: Deduplicate sampling at index in geometry nodes - Hans Goudey
- Cleanup: Simplify CurvesGeometry deletion copying - Hans Goudey
- Cleanup: Unify mesh sampling multifunctions - Hans Goudey
- Cleanup: Move draw_manager_profiling to C++ - Hong Shin
- Cleanup: Move node_util.h to C++ - Hong Shin
- Cleanup: add commit to .git-blame-ignore-revs - Campbell Barton
- Cleanup: improve code-comments, naming, use defines, correct spelling - Campbell Barton
- Cleanup: remove redundant path splitting in font loading - Campbell Barton
- Cleanup: rename "name" to "filepath" - Campbell Barton
- Cleanup: remove BLI_path_abs call on ImBuf path when saving a sequence - Campbell Barton
- Cleanup: expand on code-comments - Campbell Barton
- Cleanup: remove unused BLI_dir_* functions - Campbell Barton
- Cleanup: disambiguate terms "name", "file" & "str" / "string" - Campbell Barton
- Cleanup: rename BLI_make_existing_file for clarity - Campbell Barton
- Cleanup: re-order split prefix/suffix return arguments last - Campbell Barton
- Cleanup: rename BLI_split_name_num, order return arguments last - Campbell Barton
- Cleanup: update, add function attributes for BLI_string & BLI_path - Campbell Barton
- Cleanup: format - Campbell Barton
- Cleanup: Use array and span in weighted normal modifier - Hans Goudey
- Cleanup: Avoid allocating extra array in sample nearest node - Hans Goudey
- Cleanup: Move pipeline.h to C++ - Hong Shin
- Cleanup: Remove left-over debug prints in own previous commits. - Bastien Montagne
- Cleanup: Rename LibOverride-related enum flags/tags. - Bastien Montagne
- Cleanup: Add internal header for View2D files - Julian Eisel
- Cleanup: use BLI_path_* prefix for path splitting functions - Campbell Barton
- Cleanup: use function style casts, remove redundant parenthesis - Campbell Barton
- Cleanup: avoid nullptr casts to access a struct members size - Campbell Barton
- Cleanup: use FILE_MAX instead of PATH_MAX for sequencer add code - Campbell Barton
- Cleanup: replace strcpy, strcat with BLI_string_join - Campbell Barton
- Cleanup: IMB_metadata_set_field assigned the string twice in some cases - Campbell Barton
- Cleanup: reduce line wrapping caused by trailing comments - Campbell Barton
- Cleanup: move comments wrapped with MultiLine control statements - Campbell Barton
- Cleanup: format (with BraceWrapping::AfterControlStatement "MultiLine") - Campbell Barton
- Cleanup: remove outdated/invalid comment - Campbell Barton
- Cleanup: format - Campbell Barton
- Cleanup: Improve readability of Mask node flags - Omar Emara
Cycles
- Cycles: re-enable HIP on Linux - Brecht Van Lommel
- Cycles: Fix hang when MSL->AIR compilation fails - Michael Jones
- Cycles: solve compilation errors with OptiX 7.7 - Aldo Bleeker
DRW
- DRW: Fix mixed type comparison warning - Clément Foucault
EEVEE-Next
- EEVEE-Next: Fix validation layer errors on Metal - Clément Foucault
- EEVEE-Next: Fix wrong texture usage flag - Clément Foucault
- EEVEE-Next: World: Fix missing SSBO bind - Clément Foucault
- EEVEE-Next: Fix warning when using Metal backend - Clément Foucault
File Browser
Fix
- Fix: Viewer node crashes when the editor is pinned and has no Object ID - Lukas Tönne
- Fix: editor crashes during simulation bake - Lukas Tönne
- Fix: avoid extra depsgraph evaluation when stopping animation playback - Jacques Lucke
- Fix: force frame update only when starting animation timer - Jacques Lucke
- Fix: scrubbing time always has extra update that is only used by sequencer - Jacques Lucke
- Fix: unnecessary depsgraph update when scrubbing in timeline - Jacques Lucke
- Fix: missing null check leads to crash when rendering - Jacques Lucke
- Fix: Graph Editor - add operator flags for cursor wrapping - Christoph Lendenfeld
- Fix: crash baking empty rigid body world - Philipp Oeser
- Fix: calculating duplicates in kdtree does not work with selection - Jacques Lucke
- Fix: Missing normalization for sampled normals when adding curves - Hans Goudey
- Fix #104722: Outliner renaming uses wrong item - Julian Eisel
- Fix #105147: Rename geometry node to Is Face Planar - Marino Toscano
- Fix #105621: USD export: incorrect texture alpha mapping - Michael Kowalski
- Fix #106354: Account for hidden vertices in weight gradient operator - YimingWu
- Fix #106776: Volume cube won't render in Cycles - Erik Abrahamsson
- Fix #106853: Tooltip fix of OT_constraints_clear - Adi Sage
- Fix #107062: support opacityThreshold when exporting USD - Michael B Johnson
- Fix #107212: Fix file browser thumbnails for images - Jesse Yurkovich
- Fix #107306: Merge by distance node is not deterministic - illua1
- Fix #107356: Cycles: improve oneAPI error handling - Nikita Sirgienko
- Fix #107420: crash getting PTCacheID when baking scene rigid body world - Philipp Oeser
- Fix #107431: tag node tree topology as changed when changing socket order - illua1
- Fix #107474: Proportional Size not saved when canceling the operation - Germano Cavalcante
- Fix #107480: Crashes in mesh format conversion for old files - Hans Goudey
- Fix #107499: Text Object Selection with Scale To Fit Mode - Harley Acheson
- Fix #107505: Temporary stack not cleared in BMesh normal calculation - Hans Goudey
- Fix #107514: Broken normals wtih weighted normal "keep sharp" option - Hans Goudey
- Fix #107525: Crash loading pre 2.5x files with multiple windows open - Campbell Barton
- Fix #107545: Mistakes in recent node.cc cleanup - illua1
- Fix #107566: Gesture face set respect hidden faces - YimingWu
- Fix #107573: Purging orphan data deletes used data. - Bastien Montagne
- Fix #107577: Cycles crash with denoising and Ashikhmin-Shirley BSDF - Lukas Stockner
- Fix #107623: Do not allow dragging search menu from custom socket - illua1
- Fix #107637: crash when using density brush on empty hair - Jacques Lucke
- Fix #107648: Proportional Edit sometimes cancels GPencil keyframe transformation - Germano Cavalcante
- Fix #107717: Missing looptri_polys loading lineart - YimingWu
- Fix #72011: Visible artifacts after baking normals with bevel shader - Lukas Stockner
- Fix #95855: prioritize selecting keys on active fcurve - Nathan Vegdahl
- Fix (studio-reported) crash in liboverride resync code after recent changes. - Bastien Montagne
- Fix Pose Library: crash when using partially-keyed quaternions - Sybren A. Stüvel
- Fix Unreported: GPencil grab tool doesn't work on strokes changed by modifiers - Sietse Brouwer
- Fix blend file relative path being copied into ImBuf::filepath - Campbell Barton
- Fix broken UI view notifier listening - Julian Eisel
- Fix compilation on Windows after f30434ac99. - Thomas Dinges
- Fix crash doing a stroke in the weight paint - Sergey Sharybin
- Fix crash when accessing length of material_slots on evaluated Empty object. - Bastien Montagne
- Fix incorrect buffer size copying to StudioLight::filepath - Campbell Barton
- Fix invalid argument to BLI_path_split_dir_file - Campbell Barton
- Fix potentially missing redraws when file browser loads recursively - Julian Eisel
- Fix return of stack memory - Sergey Sharybin
- Fix snapping with constraint flickering - Germano Cavalcante
- Fix strict compiler warning - Sergey Sharybin
- Fix strict compiler warning in ImBuf - Sergey Sharybin
- Fix unintended fall-through in ANIM_is_active_channel - Campbell Barton
GPU
- GPU: Initialize SRGB In TestCases - Jeroen Bakker
- GPU: ShaderLog: Add more const correctness & notes supports - Clément Foucault
Geometry Nodes
- Geometry Nodes: Simulation calculate to frame operator - Lukas Tönne
- Geometry Nodes: allow skipping frames during simulation - Jacques Lucke
- Geometry Nodes: add simulation support - Jacques Lucke
I18N
- I18N: updated UI messages translations from SVN trunk (r6511). - Bastien Montagne
LibOverride
- LibOverride: Further fixes/improvements to partial recursive resync process. - Bastien Montagne
- LibOverride: Fix/Improve partial resync detection code. - Bastien Montagne
- LibOverride: Resync: Do not ignore embedded IDs in hierarchy processing. - Bastien Montagne
- LibOverride: Resync: Fix some issues with partial resync. - Bastien Montagne
- LibOverride: Resync: Delete non-user-edited 'isolated from root' liboverrides. - Bastien Montagne
- LibOverride: Fix/Improve resync behavior in some complex cases. - Bastien Montagne
- LibOverride: Fix wrong assert in some cases in RNA tracks handling. - Bastien Montagne
Mesh
- Mesh: Split MLoopTri poly indices into a separate array - Hans Goudey
Metal
- Metal: Add atomicExchange and mat3x4 support - Clément Foucault
- Metal: Fix EEVEE-Next shader compilation errors - Clément Foucault
- Metal: Fix Workbench-Next shader compilation errors - Clément Foucault
- Metal: Shader: Remove assertion of compilation success - Clément Foucault
- Metal: ShaderLog: Add initial implementation - Clément Foucault
- Metal: Storage buffer and explicit bind location support - Jason Fielder
Nodes
RNA
- RNA: ensure string size with RNA_property_string_get_alloc - Campbell Barton
- RNA: use memcpy for copying strings when the length is known - Campbell Barton
- RNA: replace BLI_strncpy with strcpy/memcpy when the size is known - Campbell Barton
- RNA: replace BLI_strncpy with strcpy when when the size isn't meaningful - Campbell Barton
Realtime Compositor
- Realtime Compositor: Implement Stabilize 2D node - Omar Emara
- Realtime Compositor: Implement Mask node - Omar Emara
Refactor
- Refactor: unify UNIX/WIN32 BLI_dir_create_recursive & some improvements - Campbell Barton
- Refactor: Allow to explicitly set the range on the slider UI element - Christoph Lendenfeld
- Refactor: flatten light tree in recursive function - Brecht Van Lommel
- Refactor: pose_slide.c - Christoph Lendenfeld
- Refactor: add a function to access images extensions from it's format - Campbell Barton
- Refactor: Convert mask module to C++ - Sergey Sharybin
- Refactor: Replace move_key with BKE_fcurve_keyframe_move_value_with_handles - Christoph Lendenfeld
- Refactor: Convert ImBuf to C++ - Sergey Sharybin
Sculpt
- Sculpt: Split face set visibility invert into its own operator - Joseph Eagar
- Sculpt: fix broken pbvh draw - Joseph Eagar
Tests
- Tests: Add test for broken EXR files - Sergey Sharybin
UI
- UI: support operator enums in Quick Favorites - Philipp Oeser
- UI: fix or improve many messages - Damien Picard
- UI: add Proportional Size to Proportional Edit popover - Germano Cavalcante
UV
- UV: Add pinned island support to uv packer - Chris Blackbourn
- UV: Improve packing efficiency - Chris Blackbourn
- UV: Tuning rotating to minimum square during packing - Chris Blackbourn
Vulkan
- Vulkan: Extract Correct UniformBuf Name From Interface - Jeroen Bakker
- Vulkan: Share Device Between Contexts - Jeroen Bakker
- Vulkan: Correct Aspectbits for Depth Textures - Jeroen Bakker
- Vulkan: Add FLOAT to SRGB and Depth24 Conversion - Jeroen Bakker
- Vulkan: Silence Compilation Warnings - Jeroen Bakker
Weight Paint
clang-format
- clang-format: set BraceWrapping::AfterControlStatement to "MultiLine" - Campbell Barton
macOS
- macOS: Reduce Edit Mode Drawing Artifacts - Jeroen Bakker
13 Comments
Hola Pablo, I never got my question answered, I hope I can today. Function request: add an option to the chamfer/bevel modifier, so we choose the chamfer corner Mitering type. Example it can chamfer as uniform or radial. this concept is available in other 3D softwares as You can google "uniform radial chamfer 3ds max" to see images as examples, since i am unable to share links here.
that's what nodes are for! you should be able to adjust the bevel strength by proximity to an object or vertex. you should also be able to use a vertex group to enable partial bevels via partial vertex selection in the modifier.
Hey Pablo a few questions,
In regards to simulation nodes, will the solvers be GPU accelerated or will they be CPU only?
I recently got into using OSL for Cycles and I thought it would be cool if there a sort of scripting language for geometry nodes, would something like this be possible? Houdini apparently has something like this.
Are multipasses and cryptomatte coming to the viewport compositor?
It would be cool if we could expose dropdown menus in node groups or create our own custom dropdown menus.
You might find this plugin useful for scripting geometry nodes github.com/BrendanParmer/NodeToPython
Hi, Hallo, Hola, Hello Pablo, will the viewport compositor be ready and on all platforms for 4.0 to replace the old one? having the nodes only in GLSL and not the C version anymore would make implementing new nodes much easier (And I would love to see some new compositor nodes, maybe even try to add some myself). And are there plans to make the compositor based on the camera frame only, currently some nodes dont work that well as they are applyed relative to the viewport and not the camera.
Thanks for your streams, nice to see you here Dalai, have a nice day
Hello, Pablo! How have you been? I have mainly just a question regarding Eevee NEXT. Eevee NEXT is quite literally being postponed. It original release was planned for 3.4 or 3.5. Anyway, do you have any news about the release for it? Also, I am really excited for light-linking because this would be very beneficial for us in the Archviz industry. Thanks!
Hey Pablo,
Just wandering what has happened to this patch archive.blender.org/developer/D15195 it would be a shame after spending so much time dead, then being finally worked on again if it is left to just die once more.
And how is the new bevel tool going ? ;)
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
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.
Please improve realistik bloom & glare
I mean: i.hizliresim.com/mm641b4.JPG
Hello Pablo! In geometry nodes, I noticed that some attributes are not stored as attributes, like with the set curve normal node, the curve normal is not an attribute that we can access. Is this intended?
Hi Pablo! What if we could chose colors for the triangle markers? - "m" on timeline - (Like 8 options) It could appear on the F2 rename popup.
Hello Pablo! Are there any plans to have Grease Pencil be usable outside of Blender? Something like specifications for the format or something like that? I would love to be able to take Grease Pencil, export it into "file .gp" and use it in something like Godot.
It's super sad that tools like Grease Pencil/ Quill/ Dreams never really had true use outside of their platform and I think that's damn shame.