0
$\begingroup$

In the Shader Editor or the Compositing Editor, I can build a note tree and I have the option to make that tree into a group or leave it as a tree that is not a group. But in the Geometry Nodes Editor, any tree I build must be a group.

Why can't there be a geometry node tree that is not a group, like a shader or compositing node tree?

This is related to the question, Why is default Geometry node called Group Input and Group Output?. But the answer there is basically, "because a geometry node tree is always a group," which brings us back to my question of why that is so.

$\endgroup$
2
  • 2
    $\begingroup$ Why not? Imagine that you have a box, and you complain that you can put this box inside a bigger box. You ask "Why this box is not designed in a way that it can't be put inside another box?" - I think it's a nice feature, that I often used to my advantage: you can design a node group, and at some point rather than converting it all to another group (which is problematic, because group inputs and outputs move around...), you can just create a new node group, and put the previous one inside it. You can then still use that first group as the outermost group in another modifier. $\endgroup$ Commented Dec 11, 2023 at 13:35
  • 1
    $\begingroup$ @MarkusvonBroady I definitely agree with you, only your metaphor I would change... the question asked is more like "I have these screws inside a box, why can't I have them without a box like the washers?" with screws being GN nodes and washers the shader nodes. However, the washers have a box - it is called the material, and you cannot have them without this box (that's why I referred to it as being mostly a terminology thing, sure they have different functionalities just like washers and screws or different packages for different items). $\endgroup$ Commented Dec 11, 2023 at 13:55

2 Answers 2

2
$\begingroup$

I'm not sure why you explicitly do not want a group, but to my understanding this is mostly a matter of terminology.

First of all, you don't need a Group Input in the Geometry Node Editor - this is only required if you want to use the original base mesh.

In the Shader Editor such thing does not exist because there is no original base material to build upon. In the Compositor this is not needed either, you could composite output from other image or movie input, however you could argue that the Render Layers node(s) provide(s) something like the "original base render", because without having rendered anything the Compositor would not produce output.

And for the Group Output node in Geometry Nodes - well, you need it to output the generated geometry. And you have the same things for the Shader Editor and the Compositor. If you have enabled Use Nodes in either of them, you need to plug in something in some kind of group output node. In materials, this node is called Material Output, in the Compositor it is called Composite. If you don't you shader or compositing nodetree to these outputs, they will not produce a visible result.

That's why I think it is just a matter of terminology. All have some kind of output node which is necessary to get a result. And in both the Shader Editor and the Geometry Node Editor you need to have a nodetree created first before you can edit/add nodes, either you already have a material selected or you have to click New, just like for Geometry Nodes where you can create a new nodetree either in the modifier or with that button in the editor.That's the only thing where the Compositor is different, there you need to hit Use Nodes to start building your nodetree. So in some sense the Compositor is the odd one out here, not GN.

Of course for naming conventions it might have been better if the Group Output would have been called "Geometry Output", just like "Material Output" or "Composite" reflect the editors they are used in.

However, this name could also be misleading to imply you can only output "geometry", because other than in materials and compositing you can output a lot more custom things there if you connect them to the node (yes I know, the others have more outputs as well, but still they are very limited). Same goes for the Group Input node, it can not only provide the base geometry, but also custom properties which can be edited in the modifier from outside the nodetree.

So you are basically hung up on words here. In a way, shader and compositing nodes are working like they were in a group as well, they are just not named like that.

However, if you really want to identify something to differentiate between them, it is what I mentioned before: in the Geometry Node Editor, the nodetree input and output is customisable by adding sockets for various values - just like other custom groups. This is not possible in the Shader Editor or the Compositor. But that is due to the fact that they only have a very limited number of use cases: the Compositor produces an image. The Shader Editor produces surface, volume and displacement information. Which to me makes them just limited nodegroups.

$\endgroup$
3
  • 1
    $\begingroup$ I don't think it's a terminology thing, it's a functional difference. You can't use a shader node tree as a custom group. Maybe one day shader interface will be redesigned so that just like a geonodes modifier requires a geometry output of the used node group, similarly a material would require a shader output. By coincidence even colors would match... Almost. $\endgroup$ Commented Dec 11, 2023 at 13:38
  • 1
    $\begingroup$ @MarkusvonBroady Sure, you cannot have a shader node tree as a custom group. But as I said in the last paragraph - in some way the shader is just a limited group, specialized for a certain purpose. Instead of being in the modifiers, it has its own "realm" in the material properties. And instead of being fully customisable it is limited to output surface/volume information. However, it still needs a special output node to give a result. So from the viewpoint "why can't I have GN without a group like in shaders?" it does not make much sense and I wonder why would you need it not to be a group. $\endgroup$ Commented Dec 11, 2023 at 13:48
  • $\begingroup$ Gordon, thank you for the detailed answer. I'm accepting it because I think there's a chance that by the end of the donut tutorial I'll be able to understand it! -- Re why I would want a node tree not in a group, I don't know that I ever would. My question is seeking to understand the computer science of these node structures for a deeper understanding of how they work and what they do. $\endgroup$
    – NewSites
    Commented Dec 12, 2023 at 6:08
0
$\begingroup$

You can stack multiple Geometry Nodes Modifiers to your object which have at least one input and output value (Geometry).

The input values are usually data from the geometry itself or other objects or value types.

The output values are the generated geometry data and optionally output attributes to be used in the next modifier or other node tree structures like the Material Shader Nodes.

This is why the nodes of any Geometry Nodes Modifier are nested inside a Group

$\endgroup$
1
  • $\begingroup$ But isn't all of what you said above also true of shader and compositing nodes? And just as shader and compositing nodes can do something useful without being packaged in a group, is it not possible for geometry nodes to do something useful without the requirement of being in a group? For example, if I want to distribute some points on a surface, like the donut tutorial does with sprinkles (youtube.com/…), is there a reason it wouldn't work to put a Distribute Points node in the GN editor without being in a group? $\endgroup$
    – NewSites
    Commented Dec 11, 2023 at 5:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .