Geometry Nodes: add to Output an Attribute Domain option = per Object/Global

I was trying to make some basic procedural text stuff and I found out that there’s no way to pass output attributes from the geometry node to the shaders if a “string to curve” node is involved, while there’s no problem with other curves primitives… using the same node setup and changing only the curve profile.

See in the picture I attached: the C1 output attribute is imported in the shader node tree as an Input Attribute and used as color… As you can see even if they’re using the identical setup (a curve to mesh node) only the one originated from the curve primitive “receives” the attribute as input in the shader, while the text is totally black.

At the moment none of the available options (point, edge, face, face corner, spline) gives anything as output to the part of the mesh generated using the “string to curve” node. I don’t know if it’s a bug or this behaviour is exactly the expected one (text in blender is a “strange” type of curve… I know)… anyway adding as an option for the Attribute Domain “Global/Per Object” would give a way to pass parameters to the shader nodes in such cases.

And it would be VERY useful… since there is not yet a practical and convenient way to “communicate” and exchange parameters with the shaders nodes in Blender (Object custom Properties are a complete mess - you can’t copy or transfer them to other objects… and if you need to add new ones after you created hundreds of objects… well… -_- )

The best way I found for outputing attributes from the geonodes to the shader node tree is passing them through the geometry node and importing them to the shader node tree with the input node “Attributes” … Clean and easy: no mess, no useless convoluted things to do… and you can easily add an change stuff whenever you should need it…

The string to curves node outputs instances. That’s been made more clear for 3.1 with the name of the output socket becoming “Curve instances” instead of “curves’”. If you add a realize instances node it will work.

Thank you for the clarification (about text “curves”)…
Yes, I know I can “Realize Instances”… but losing the advantages of instancing… and if you have a lot of instances on the scene… it impacts on the system (I work with a very old PC and very limited resources… so optimization is a key factor for me).

I knew there was this (and other) problems with instances too… Yes, you can’t pass any attribute as output to a shader node using : “instance on points” too …

That’s why i think a “Per object/Global” Output Attribute Domain option would be very useful and precious; it would be an easy and practical way to “communicate” with the shaders and pass attributes in any situation (instances or real geometry wouldn’t matter anymore) without having to “realize instances” and losing the advantages of instancing.

Thanks for your idea. However, I closed this thread because this forum isn’t meant for feature requests (more info about that in the header at the top of every page).