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…