Commit graph

56 commits

Author SHA1 Message Date
Jacques Lucke
1a542e4131 Nodes: new Comment node
This adds a new Comment node to simplify documenting a node tree.

Currently people use two main ways to add such comments:
* Frame nodes with titles/descriptions. Titles should stay, but
  multi-line text in frame nodes doesn't work well and might be removed
  eventually.
* String input nodes. Since those have multi-line textboxes, they can be
  used for documentation.

For the common use-case of adding a description to some part of the node
tree (that is not just a frame title), this new Comment node is superior
to both alternatives. It has better ux and supports markdown rendering.

The Comment node uses the same background color as frame nodes and thus
integrates nicely visually already. It also has the same alternating-color
behavior like nested frames so that it remains visible even if it's in a
frame.

There are multiple ways to edit the comment:
* Double click on it.
* Activate the node and press F2.
* Hover the node and hit enter.
* Click the edit icon.
* In the sidebar in the node panel.

Pull Request: https://projects.blender.org/blender/blender/pulls/163168
2026-09-18 01:29:37 +02:00
Damien Picard
9991127233 I18n: Improve two small things in the Node Add menu's translation
## Translate Typed Bundle entry from node add menu

"Typed Bundle" is a special menu entry to add bundles. It was not
extracted because the `typed_bundle` method is not handled
automatically.

This commit simply adds the `n_` extraction function around the
string. Translation happens later, inside `node_operator`.

## Do not translate node label on declaration, but in UI layout

The `node_operator` method inside `NodeMenu` is used to declare node
menu entries. It can take a label as argument, or fall back on the
node's name. If the name is not found, it falls back on "Unknown".

Translation can be enabled or not in the method, depending on whether
it's handled on the call site. If no label is passed in, it should be
translated so translation is now enabled in that case in the UI layout
method.

But since translation is enabled in UI layout, it shouldn't happen
before, so this commit also replaces `iface_` with `n_` (simple
message extraction, no translation).

Pull Request: https://projects.blender.org/blender/blender/pulls/160788
2026-06-29 12:22:21 +02:00
Jacques Lucke
92ffc4dd8a Nodes: don't draw indirectly linked node groups in menu
Recently, more built-in node groups assets are being added. These sometimes use
many nested node groups which are not meant to be more internal. However, those
could still clutter the node add menu a lot, overloading it with many groups
that the user did not ask for specifically.

This patch changes this by making it so that linked/packed node groups only show
up in the add menu, if they are directly used in the file already. If they are
only indirectly used, they are not shown. It's still possible to add them though
through the drop-down in the group node or by dragging it in from the outliner.

In the past, the only way to hide these nested groups is to prefix their names
with a dot. However, that has some considerable downsides:
* It's ugly.
* Depending on the context, the same group should sometimes be hidden and
  sometimes not.
* Changing the name of the asset (by adding or removing the dot) breaks existing
  links between files.

Pull Request: https://projects.blender.org/blender/blender/pulls/159352
2026-06-01 20:08:03 +02:00
Jacques Lucke
3a7652f7fa Nodes: move linked node groups to submenu in add/swap menu
Currently, when adding pulling in a node group that has a lot of nested node
groups, they all show up in the `Group` menu, making it very big. This could be
avoided by adding a `.` prefix to all the nested group names but that's not
ideal either, especially if some of these node groups should become proper
assets later anyway.

This patch changes it so that local node groups are displayed separately from
linked (+packed) node groups which the user did not create locally in this file.

Pull Request: https://projects.blender.org/blender/blender/pulls/159027
2026-05-27 15:05:16 +02:00
quackarooni
c93198d62c Fix: Swap functionality not implemented for Typed Bundle node operator
A new operator for creating bundles with a Type input was introduced in
9b81403e0d.

However, the equivalent Swap functionality was not included. This results in a
bunch of errors when calling the operator from the Swap menu. This patch
introduces the necessary functionality, via `node.swap_typed_bundle`, allowing
the user to be able to swap to typed bundle nodes.

Pull Request: https://projects.blender.org/blender/blender/pulls/158500
2026-05-25 01:06:15 +02:00
Quackers
68f3e648ba Cleanup: Nodes: Remove unused functions in node_add_menu
These functions are no longer used by the Add menu. Best to remove them
to keep the code succinct.

Pull Request: https://projects.blender.org/blender/blender/pulls/158805
2026-05-20 20:42:09 +02:00
Lukas Tönne
9b81403e0d Geometry Nodes: Support for experimental Typed Bundles
Specialized nodes for constructing bundles with a "Type" item. The type
can be any string, but a number of known types can be registered in
advance to support string search.

Typed bundles can be searched using the `Get Nested Bundle Paths` node,
which returns a list of bundle paths with matching type. Nested bundles
can also be searched.

This will be used by the future hair dynamics feature to support
declarative physics components. New nodes are hidden behind the
experimental hair dynamics feature flag for the time being.

Pull Request: https://projects.blender.org/blender/blender/pulls/158043
2026-05-02 08:40:37 +02:00
Habib Gahbiche
5dc6305602 Nodes: Defaults for Vector Math node depend on operation
Related to https://projects.blender.org/blender/blender/pulls/155879

Initialize Vector Math node with reasonable defaults depending on the
math operation.

### 1st and 2nd input defaults set to (1,1,1):
- Multiply
- Divide
- Power
- Modulo

### 1st set to (1,1,1), 2nd to (0,0,0):
- Subtract (`1 - x` is a common operation)

### 2nd set to (1,1,1), 3rd to (0,0,0):
- Multiply Add

Pull Request: https://projects.blender.org/blender/blender/pulls/156804
2026-04-08 12:35:03 +02:00
Habib Gahbiche
9eab44d630 Nodes: Defaults for Integer Math node depend on operation
When adding an Integer Math node, the inputs are initialized to 1 or 0
depending on the operation.

Defaults:

1st and 2nd inputs set to 1:
- Multiply
- Divide
- Divide Round
- Divide Floor
- Divide Ceil
- Floored Modulo
- Modulo

1st input to 1, 2nd to 0:
- Multiply Add

Pull Request: https://projects.blender.org/blender/blender/pulls/156823
2026-04-08 12:08:26 +02:00
Habib Gahbiche
6355b3df1b Nodes: defaults for math node depending on operation
Follow-up to c01b317f14

Initialize new math node with reasonable defaults depending on the
operation.

## Defaults:
### 1st and 2nd input defaults to 1:
- Multiply
- Multiply Add
- Power
- Truncated modulo
- Floored modulo
- Modulo
- Artan2
### 1st and 2nd input defaults to 0:
- Add
### 1st input defaults to 1, 2nd to 0:
- Subtract (`1 - x` are more common for subtraction)
### 2nd input set to 1, 3rd input defaults to 0:
- Multiply Add

Pull Request: https://projects.blender.org/blender/blender/pulls/155879
2026-03-26 18:22:35 +01:00
Habib Gahbiche
1a8e618d99 Nodes: Mix Node: Set factor default to 1 for all blend types except Mix
In Blender 4.5, the compositor Mix node was replaced by the shader Mix
node. As a consequence, the default factor changed from 1 to 0.5.

This PR sets the default back to 1 for all blend types, except for Mix.

Pull Request: https://projects.blender.org/blender/blender/pulls/155885
2026-03-25 10:30:14 +01:00
Miguel Pozo
07746ada02 Render: Shader Editor Add Menu cleanup
Filter unsupported nodes and node categories from the UI based on the
tree type.

Pull Request: https://projects.blender.org/blender/blender/pulls/154675
2026-02-23 16:40:02 +01:00
Jan-Hendrik Müller
3a3515f5fe Geometry Nodes: Lower Mix Color search priority
Color Mix nodes are not commonly used in Geometry Nodes,
so this commits lowers their search priority.

Pull Request: https://projects.blender.org/blender/blender/pulls/153527
2026-01-29 19:49:22 +01:00
Habib Gahbiche
81f2113c71 UI: Hide datablocks with dot-prefixed names by default
Currently, it's possible to hide datablocks whose names start with '.'
by disabling 'Show Hidden Files/Data-Blocks'. However, this parameter is
under 'Save & Load' and is meant for filtering IDs when
linking/appending.

The PR introduces a new parameter 'Show Hidden' under the existing
Interface / Display / Search layout that only affects searching.
The new parameter is disabled by default

Ref: https://projects.blender.org/blender/blender/issues/148717
Pull Request: https://projects.blender.org/blender/blender/pulls/151903
2026-01-14 15:28:26 +01:00
Campbell Barton
d1c9ef117d Cleanup: spelling in comments, strings & vars (make check_spelling_*) 2025-11-29 22:12:24 +11:00
Campbell Barton
7a249222be Cleanup: tweak multi-line parenthesis for Python scripts
Reduce right shift, moving closing parenthesis onto own line
for clarity & reducing diff noise in some cases.

Ref !147857
2025-10-12 03:31:31 +00:00
Damien Picard
c35de6f92d I18n: Translate labels using node UI function from node_add_menu.py
In 2a1a658492, layout functions for nodes were refactored and new
methods were introduced, but this change was not applied to the
translation extraction script.

This commit adds these method names and argument order to Python
extraction: "node_operator", "node_operator_with_outputs",
"simulation_zone", "repeat_zone", "for_each_element_zone",
"closure_zone".

Tooltips specified in a special structure are manually extracted using
`n_()`.

Actual translation is done manually in the UI methods inside NodeMenu,
in order to override the context, which by default would have been
"Operator".

Reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/147582
2025-10-09 12:09:25 +02:00
Hans Goudey
085276d8ba UI: Nodes: Sort packed groups below assets in add menu search
Previously items in the "Group" list would usually show up first because
their menu path is shorter. Now, adjust their search weight so they show
up lower than the corresponding asset. That this is just a heuristic,
because we don't have a good way to directly deduplicate groups
that are just packed assets in the add menu currently.

Pull Request: https://projects.blender.org/blender/blender/pulls/147629
2025-10-08 16:15:03 +02:00
Philipp Oeser
8d4f883d27 Fix #147476: errors/crashes calling node menus outside the Node Editor
Calling node menus in the context of a different editor can lead to
errors in many places (e.g. checking on space_data tree_type/
node_tree_sub_type), so to resolve, add a very general poll function to
the NodeMenu class.

Pull Request: https://projects.blender.org/blender/blender/pulls/147512
2025-10-07 11:47:47 +02:00
quackarooni
268d8dd94b Nodes: Add icon and separate "New Group" operators
The current placement of the operators make it easy for them to blend in with
other group nodes in that menu.

This patch adds an icon to better indicate the nature of these operators, and
have separators between it and other entries of the menu.

Pull Request: https://projects.blender.org/blender/blender/pulls/147330
2025-10-04 11:55:54 +02:00
Campbell Barton
9c5fda87a5 Cleanup: use format specifier, full sentences 2025-09-26 05:10:23 +00:00
Campbell Barton
945590c1d9 Fix: un-escaped strings for node operators/UI
Correct error [0] constructing data paths without escaping.

[0]: 2a1a658492
2025-09-26 14:40:43 +10:00
Campbell Barton
b4fbc0c32d Cleanup: remove f-strings use, use double quotes, quiet pylint warnings 2025-09-26 14:31:05 +10:00
quackarooni
2a1a658492 Nodes: Swap Node Operator
Implement a native method to swap between different node and zone types.

This implementation repurposes the existing menu definitions as base
classes, from which both an "Add" and a "Swap" version would be generated
from. This allows both menus to have the same layout, but use their own
operators for handling the different node/zone types.

In this PR, support for all node editors has been implemented.

Invoking the menu is currently bound to `Shift + S`, same as the old
implementation in Node Wrangler. Since "Swap" is implemented as a
regular menu, features that menus already have such as type-to-search
and adding to Quick Favorites don't require any extra caveats to
consider.

Resolves #133452

Pull Request: https://projects.blender.org/blender/blender/pulls/143997
2025-09-25 16:12:02 +02:00
Campbell Barton
e2b24f0f38 Cleanup: define __all__ for node_add_menu.py
Clarify public/private functionality.
2025-09-06 04:36:15 +00:00
Campbell Barton
6ae29a73da Cleanup: use str.format type specifiers, ascii characters in menu text 2025-09-06 04:36:14 +00:00
Omar Emara
149a47ba57 Compositor: Turn Menu options to inputs
This patch turns node Menu options into menu inputs. This patch only
covers node operations like Filter, Distort, and so on. Pixel nodes like
Color Balance, Matte, and so on will be done in a separate patch.

Pull Request: https://projects.blender.org/blender/blender/pulls/144495
2025-08-28 08:45:23 +02:00
Bastien Montagne
e2366f6768 Merge branch 'blender-v4.5-release' 2025-07-09 12:03:26 +02:00
Damien Picard
7d4f6faffd I18n: Translate missing node add search menu items
Some items in the node editors' add menus were not properly
translated. The affected items referenced an enum property on a node,
such as Math node's Operation.

Since some of those enums use a specific translation context, the same
context must be used when adding them to the search menus. The context
can simply be retrieved from the bl_rna prop itself.

In addition, some items use labels that are already translated
manually and do not need the auto translation, so disable that in
those cases (translate=False).

No new messages are added by this change.

Reported by Ye Gui in #43295.

Pull Request: https://projects.blender.org/blender/blender/pulls/141629
2025-07-09 12:00:36 +02:00
Campbell Barton
e442c16fef Cleanup: resolve Python linter warnings 2025-07-03 21:05:21 +10:00
Damien Picard
0ba83d8958 I18n: Translate GN Add > Input > Import menu items
Geometry Nodes' Add > Input > Import menu includes file format items
such as "Standford PLY (.ply)", "STL (.stl)", "Text (.txt)". The
latter needs to be translated because "Text" is a generic format.

These items are declared using a custom function
`node_add_menu.add_node_type`, with a `label` argument. This commit
adds the `label` argument to the function arguments that can be
extracted from specific node declaration functions, and specifies the
argument position for each:

"add_node_type", "add_node_type_with_outputs", "add_simulation_zone",
"add_repeat_zone", "add_foreach_geometry_element_zone",
"add_closure_zone".

There is currently no facility to specify a translation context but it
could be easily added if the need arises.

Most of these functions do not actually declare new, unique messages,
but it could happen in the future. In addition, two messages were
extracted using manual `iface_()` calls, which are no longer needed
after this change.

Reported by Ye Gui in #43295.
2025-07-01 10:47:09 +02:00
Jacques Lucke
0347608121 Nodes: improve "frame" search
This reduces the search weight of the frame node because it is rarely added
through the add menu. It's much easier to add it with the F key.

By reducing its search weight, the Frame output of the Scene Time node shows up
as first result, which is more desirable.

Pull Request: https://projects.blender.org/blender/blender/pulls/139709
2025-06-02 13:49:17 +02:00
Jacques Lucke
39a3b44a72 Nodes: support searching for outputs of various input nodes directly
Previously, one had to search for the name of an input node (Geometry, Light
Path, etc.) instead of for the actual desired values.

This patch makes it possible to search for the output names of various input
nodes directly. All other outputs of the input node are hidden automatically.
This was partially support for the Scene Time before.

Supported nodes:
* Compositor: Scene Time
* Geometry Nodes: Camera Info, Mouse Position, Scene Time, Viewport Transform
* Shader Nodes: Camera Data, Curves Info, Geometry, Volume Info, Light Path,
  Object Info, Particle Info

Right now, the output names are hardcoded in the menu. We don't have a great way
to access those without an actual node instance currently. For that we'll need
to make the node declarations available in Python, which is a good project but
out of scope for this this feature. It also does not seem too bad to have more
explicit control over what's shown in the search.

Pull Request: https://projects.blender.org/blender/blender/pulls/139477
2025-05-28 05:41:37 +02:00
Jacques Lucke
d9317046b2 Nodes: initialize node name from group name
Previously, when adding a group node it was always called `Group`. This is not
particularly useful. Also it's inconsistent with many other places like adding
modifiers where the name of the modifier depends on what modifier is added.

Now, newly added group node will have the same name as the group that it calls.
Node names still have to be unique though, so e.g. `.001` is still added.

Pull Request: https://projects.blender.org/blender/blender/pulls/139093
2025-05-19 15:39:44 +02:00
Jacques Lucke
c157fecc4e Nodes: support searching for frame/seconds to find Scene Time node
Previously, one had to search for "Time" to get the Scene Time node which
provides access to the current frame and second. Intuitively I often start
searching for "frame" or "seconds" instead and only later remember what I
actually have to search for.

This patch improves the UX by allowing to create a Scene Time node by searching
for "frame" or "seconds" directly. This works in Geometry Nodes and the
compositor.

Pull Request: https://projects.blender.org/blender/blender/pulls/138927
2025-05-15 20:56:33 +02:00
RedMser
804449dfb0 Fix #128126: Hidden Node Groups not searchable in Add Node menu
Node groups are now hidden based on the "Show Hidden Files/Data-Blocks"
user preference, similar to how the ID selector search filters the
results based on the user preference.

Note that this PR does **not** change filtering behavior when the
setting is off and you search for a dot.

Pull Request: https://projects.blender.org/blender/blender/pulls/138878
2025-05-14 17:41:47 +02:00
Jacques Lucke
4de3172058 Nodes: support search weight in menu for searchable enum 2025-05-10 06:28:59 +02:00
Jacques Lucke
fb86bf0367 Nodes: support searching for color blend modes in Add menu
This is a follow up to #138534. It adds support for searching for all color blend
operations. It's supported in Geometry Nodes, Compositor and Shader Nodes.

Pull Request: https://projects.blender.org/blender/blender/pulls/138581
2025-05-09 04:02:50 +02:00
Jacques Lucke
9e0e94e6e2 Nodes: simplify adding new empty node group
The main way to create a new node group right now is to select some nodes and
then press ctrl+G. This works well for the common case when one already has some
nodes to group. However, there is no good alternative currently for when one
wants to create a new group from scratch. A common workaround currently is to
add some dummy node, then press ctrl+G and then to delete the dummy node in the
group again. Obviously, we can do better than that.

This patch adds a `New Group` entry in the menu. It's available in geometry,
compositing and shading Nodes. The operator adds a new node group called
"NodeGroup" (the same default name we use for ctrl+G currently). Then it adds a
new group node and assigns the new group to it. The group itself does not have
any inputs or outputs by default because any such socket would just be a guess
that's likely wrong and more annoying than useful.

A nice side benefit of adding this operator is that the Group menu is not empty
in shading and compositing nodes initially which always looked a bit off.

Pull Request: https://projects.blender.org/blender/blender/pulls/138430
2025-05-08 10:17:56 +02:00
Jacques Lucke
156a405dd5 Nodes: support searching for specific math operations in Add menu
Previously, it was possible to search for specific math operations in
link-drag-search but not in the normal add menu. This patch adds support for
searching for specific operations in various math nodes.

A good trick for adding e.g. a vector add node is to search for `vadd`
(similarly with `iadd`).

The menu itself looks unchanged. This patch only adds additional elements to the
search.

Pull Request: https://projects.blender.org/blender/blender/pulls/138534
2025-05-08 04:28:22 +02:00
Jacques Lucke
8ec9c62d3e Geometry Nodes: add Closures and Bundles behind experimental feature flag
This implements bundles and closures which are described in more detail in this
blog post: https://code.blender.org/2024/11/geometry-nodes-workshop-october-2024/

tl;dr:
* Bundles are containers that allow storing multiple socket values in a single
  value. Each value in the bundle is identified by a name. Bundles can be
  nested.
* Closures are functions that are created with the Closure Zone and can be
  evaluated with the Evaluate Closure node.

To use the patch, the `Bundle and Closure Nodes` experimental feature has to be
enabled. This is necessary, because these features are not fully done yet and
still need iterations to improve the workflow before they can be officially
released. These iterations are easier to do in `main` than in a separate branch
though. That's because this patch is quite large and somewhat prone to merge
conflicts. Also other work we want to do, depends on this.

This adds the following new nodes:
* Combine Bundle: can pack multiple values into one.
* Separate Bundle: extracts values from a bundle.
* Closure Zone: outputs a closure zone for use in the `Evaluate Closure` node.
* Evaluate Closure: evaluates the passed in closure.

Things that will be added soon after this lands:
* Fields in bundles and closures. The way this is done changes with #134811, so
  I rather implement this once both are in `main`.
* UI features for keeping sockets in sync (right now there are warnings only).

One bigger issue is the limited support for lazyness. For example, all inputs of
a Combine Bundle node will be evaluated, even if they are not all needed. The
same is true for all captured values of a closure. This is a deeper limitation
that needs to be resolved at some point. This will likely be done after an
initial version of this patch is done.

Pull Request: https://projects.blender.org/blender/blender/pulls/128340
2025-04-03 15:44:06 +02:00
Campbell Barton
be0c9174aa Cleanup: argument wrapping for Python scripts
- Wrap the closing parenthesis onto it's own line
  which makes assignments to the return value
  read better.
- Reduce right-shift with multi-line function calls.
2025-01-14 12:53:32 +11:00
Jacques Lucke
6e5e01e630 Geometry Nodes: new For Each Geometry Element zone
This adds a new type of zone to Geometry Nodes that allows executing some nodes
for each element in a geometry.

## Features

* The `Selection` input allows iterating over a subset of elements on the set
  domain.
* Fields passed into the input node are available as single values inside of the
  zone.
* The input geometry can be split up into separate (completely independent)
  geometries for each element (on all domains except face corner).
* New attributes can be created on the input geometry by outputting a single
  value from each iteration.
* New geometries can be generated in each iteration.
    * All of these geometries are joined to form the final output.
    * Attributes from the input geometry are propagated to the output
      geometries.

## Evaluation

The evaluation strategy is similar to the one used for repeat zones. Namely, it
dynamically builds a `lazy_function::Graph` once it knows how many iterations
are necessary. It contains a separate node for each iteration. The inputs for
each iteration are hardcoded into the graph. The outputs of each iteration a
passed to a separate lazy-function that reduces all the values down to the final
outputs. This final output can have a huge number of inputs and that is not
ideal for multi-threading yet, but that can still be improved in the future.

## Performance

There is a non-neglilible amount of overhead for each iteration. The overhead is
way larger than the per-element overhead when just doing field evaluation.
Therefore, normal field evaluation should be preferred when possible. That can
partially still be optimized if there is only some number crunching going on in
the zone but that optimization is not implemented yet.

However, processing many small geometries (e.g. each hair of a character
separately) will likely **always be slower** than working on fewer larger
geoemtries. The additional flexibility you get by processing each element
separately comes at the cost that Blender can't optimize the operation as well.
For node groups that need to handle lots of geometry elements, we recommend
trying to design the node setup so that iteration over tiny sub-geometries is
not required.

An opposite point is true as well though. It can be faster to process more
medium sized geometries in parallel than fewer very large geometries because of
more multi-threading opportunities. The exact threshold between tiny, medium and
large geometries depends on a lot of factors though.

Overall, this initial version of the new zone does not implement all
optimization opportunities yet, but the points mentioned above will still hold
true later.

Pull Request: https://projects.blender.org/blender/blender/pulls/127331
2024-09-24 11:52:02 +02:00
Jacques Lucke
e842966c5e Nodes: add group node default width
This adds the ability to customize the default width of a group node that's
created for a node group. This feature works towards the goal of unifying the
features available to built-in nodes and node groups. We often customize the
width of built-in nodes from them to looks slightly better (e.g. to avoid
cut-off labels).

Pull Request: https://projects.blender.org/blender/blender/pulls/126054
2024-08-11 19:25:53 +02:00
Campbell Barton
0e3b594edb Refactor: scripts under scripts/startup/ to use str.format
Part of modernizing scripts in Blender, where the previous convention
was to use percentage formatting which has become the "old" way to
format strings in Python.

See proposal for details #120453.

Ref !120552
2024-04-27 16:02:36 +10:00
Jacques Lucke
d1634b2a4a UI: support adding a search weight to menu entries for menu-search
The goal is to support better search experience in the cases where we want to
explicitly influence the ordering instead of relying only on general heuristics.
We used to support this already at some point I think, but not anymore since we
started using menu-search.

The implementation is fairly straight forward. It mainly just forwards the
search weight from the menu definition to the search code through various
required steps. The main annoying thing is that changing the signature of e.g.
`uiItemFullO_ptr` is fairly involved. Even using default parameters for these
functions is a bit annoying and becomes fairly unreadable and error-prone on the
call-site. For now, I worked around this by storing the search weight on the
`uiLayout` and to copy it to the `uiBut` from there. That seems preferable until
we have a better solution for adding parameters to all the `uiItem*` functions.

Pull Request: https://projects.blender.org/blender/blender/pulls/120572
2024-04-16 12:18:45 +02:00
Campbell Barton
8ea2db5337 Cleanup: format, remove redundant trailing commas 2023-09-03 15:48:30 +10:00
Pablo Vazquez
9db4c0ca4b Shading Nodes: Refactor Add menu
Refactor the Add menu in Shading nodes, with manually created menus,
inspired by Geometry Nodes and more recently the Compositor.

Minor sorting adjustments by splitting categories in groups, with
separators in between groups, and sorted alphabetically. Shading
node group assets are also populated in the menus.

This is the first part of the re-organization of the Add menu,
part of #111746

Pull Request: https://projects.blender.org/blender/blender/pulls/111798
2023-09-01 20:46:12 +02:00
Hans Goudey
7c2dc5183d Nodes: Remove "Make Group" and "Ungroup" from add menu
Since these are operations rather than new nodes, they don't make
sense in the add menu. They are also available in the "Node" menu
in the editor's header and in the context menu.
2023-08-23 15:52:22 -04:00
Campbell Barton
e955c94ed3 License Headers: Set copyright to "Blender Authors", add AUTHORS
Listing the "Blender Foundation" as copyright holder implied the Blender
Foundation holds copyright to files which may include work from many
developers.

While keeping copyright on headers makes sense for isolated libraries,
Blender's own code may be refactored or moved between files in a way
that makes the per file copyright holders less meaningful.

Copyright references to the "Blender Foundation" have been replaced with
"Blender Authors", with the exception of `./extern/` since these this
contains libraries which are more isolated, any changed to license
headers there can be handled on a case-by-case basis.

Some directories in `./intern/` have also been excluded:

- `./intern/cycles/` it's own `AUTHORS` file is planned.
- `./intern/opensubdiv/`.

An "AUTHORS" file has been added, using the chromium projects authors
file as a template.

Design task: #110784

Ref !110783.
2023-08-16 00:20:26 +10:00