Geometry Nodes: Add option to hide input in modifier #104517
When building a node group that's meant to be used directly in the
node editor as well as in the modifier, it's useful to be able to have
some inputs that are only meant for the node editor, like inputs that
only make sense when combined with other nodes.
In the future we might have the ability to only display certain assets
in the modifier and the node editor, but until then this simple solution
allows a bit more customization.
When building a node group that's meant to be used directly in the node editor as well as in the modifier, it's useful to be able to have some inputs that are only meant for the node editor, like inputs that only make sense when combined with other nodes. In the future we might have the ability to only display certain assets in the modifier and the node editor, but until then this simple solution allows a bit more customization.
Works great functionality wise!
I'm not sure about the restructuring of the checkboxes you've done. The fact that these inputs are defined as negative makes it a bit unintuitive, when the
Hide part is displayed off to the side. It doesn't read well what the toggles actually do imo.
I would propose to Keep
Hide in the names of the toggles, to make it clear. Though I do see that it looks more neat, imo that comes at the cost of readability.
As described in #95966, replace the `ME_EDGEDRAW` flag with a bit vector in mesh runtime data. Currently the the flag is only ever set to false for the "optimal display" feature of the subdivision surface modifier. When creating an "original" mesh in the main data-base, the flag is always supposed to be true. The bit vector is now created by the modifier only as necessary, and is cleared for topology-changing operations. This fixes incorrect interpolation of the flag as noted in #104376. Generally it isn't possible to interpolate it through topology-changing operations. After this, only the seam status needs to be removed from edges before we can replace them with the generic `int2` type (or something similar) and reduce memory usage by 1/3. Related: -
145839aa42In the future `BM_ELEM_DRAW` could be removed as well. Currently it is used and aliased by other defines in some non-obvious ways though. Pull Request #104417
This was missed when doing the refactoring in #104500 It didn't seem to have any effect until I worked on clamping the view
Currently there's no way to assign a geometry node group from the asset browser to an object as a modifier without first appending/linking it manually. This patch adds a drag and drop operator that adds a new modifier and assigns the dragged tree. Pull Request #104430
Add a new node that groups faces inside of boundary edge regions. This is the opposite action as the existing "Face Group Boundaries" node. It's also the same as some of the "Initialize Face Sets" options in sculpt mode. Discussion in #102962 has favored "Group" for a name for these sockets rather than "Set", so that is used here. Pull Request #104428
db87e2a638Reviewed By: ISS Differential Revision: https://archive.blender.org/developer/D17213
Fixed #104435: Use correct conditional logic when testing if a new NLA strip can be added in the rna_NlaStrip_new method
When nodes are copied to the clipboard, they don't need their declaration. For nodes with dynamic declaration that might depend on the node tree itself, the declaration could not be build anyway, because the node-clipboard does not have a node tree. Pull Request #104432
Documented all functions, adding use case and side effects. Also replace the use of shortened argument name by more meaningful ones. Renamed `GPU_batch_instbuf_add_ex` and `GPU_batch_vertbuf_add_ex` to remove the `ex` suffix as they are the main version used (removed the few usage of the other version). Renamed `GPU_batch_draw_instanced` to `GPU_batch_draw_instance_range` and make it consistent with `GPU_batch_draw_range`.
Move the function for getting the language code associated with the user manual into a utility function (from the generated rna_manual_reference.py). This allows other parts of Blender to create a manual URL based on the current locale preferences and environment. Ref !104494
Use bpy.utils.manual_language_code() create manual URL's instead of assuming English.
- undeclared variable warning. - unreachable-code-return warnings. - array-parameter, mismatch bound. - 'requires' is a keyword in C++20, (rename to requires_flag).
The generator now skips these with a warning, they will need to be corrected in the user manual. This caused tests/python/bl_rna_manual_reference.py to fail looking up URL's.
Without this, every access to "language" would warn that the enum value didn't match a value in the enum items. This made the bl_rna_manual_reference.py test output practically unusable.
- Avoid flooding the output with every match that succeeds. - Report patterns listed in the manual that don't match anything in Blender. - Disable external URL lookups, this is too slow. Instead use a LOCAL_PREFIX (a local build of the manual) or skip the test.
(Follow on from D17043) On AMD Navi2 devices the MetalRT checkbox was not hooked up properly and had no effect. This patch fixes it. Co-authored-by: Michael Jones <firstname.lastname@example.org> Pull Request #104520
Box-Selecting channels in the dope sheet with click-drag was no longer possible as of Blender 3.2 Due to the removal of tweak events the box select operator was always shadowed by the click operator. Original Phabricator discussion here: https://archive.blender.org/developer/D17065 Use `WM_operator_flag_only_pass_through_on_press` on click operator to fix it Co-authored-by: Christoph Lendenfeld <email@example.com> Pull Request #104505
When the sequencer is empty (i.e., there are no sequences), we would have the deselect_all variable set to true called ED_sequencer_deselect_all to select any existing sequences. Ref !104453
When merging two gpencil layers, if the destination layer had a keyframe where the source layer did not, strokes of the previous keyframe in source layer were lost in that frame. This happened because the merge operator was looping through frames of the source layer and appending strokes in the corresponding destination layer, but never completing other frames than the ones existing in the source layer. This patch fixes it by first adding in source layer all frames that are in destination layer. Co-authored-by: Amelie Fondevilla <firstname.lastname@example.org> Pull Request #104558
Because of T95965, some attributes are stored as generic attributes in Mesh but have special handling for the conversion to BMesh. Expose a function to tell whether certain attribute names are handled specially in the conversion, and refactor the error checking process to use it. Also check for generic attributes on the face domain which wasn't done before. Author: Hans Goudey Reviewed By: Joseph Eagar Co-authored-by: Joseph Eagar <email@example.com> Pull Request #104567
Using callback functions didn't scale well as more arguments are added. It got very confusing when to pass tehmarguments weren't always used. Instead use a `FunctionRef` with indices for arguments. Also remove unused edge arguments to topology mapping functions.
The type was just skipped when drawing defaults for the image sockets.
This just adds `threading::parallel_for` and `threading::parallel_invoke` in a few places where it can be added trivially. The run time of the `separate_geometry` function changes from 830 ms to 413 ms in my test file. Pull Request #104563
This reverts commit
aab707ab70. A different solution to the submodule problem is being considered in #104573. Revert to the previous behavior that developers are familiar with for now.
Thanks for the change, it's less confusing now, I think.
Is there a reason that you changed the order? To me it makes more sense to keep the setting that is exclusive to geometry nodes after the one that shows up for other nodegroup types.
Other than that this is good to go for me.
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?