I created several parallel instances of a wooden beam object using the following Geometry Node Tree:
And with the following Shader Node Tree:
As expected, each instance of the beam has the same exact dimension with the same exact shading. Boring. To relieve some of the monotony, I modified the Shader Node Tree as follows, to introduce random variation in shading for each object instance:
Achieving the following improved result:
That's better. Each instance now has its own pattern of wood grain colors, bumps, and scratches . But we should be able to go one step further by randomly altering the width of the beams by translating the vertices at each end. (Note: we can't randomly scale the beam instances because the dimensions of the beam notches between the beam ends must be preserved). After creating a vertex group (named Beam Ends) that captures the vertices at both ends of the beam, I achieved the following result with the following modifications to the Geometry Node Tree:
Looks pretty good. Each beam now has a different width. But unfortunately the uniformity in shading across the beam instances has returned.
My question is, how can one randomize both instance topology and instance shading variation (preserving the randomization created using Shading Node Trees) across object instances created using Geometry Nodes Trees?
Am I overlooking the obvious? I feel like I'm just one or two steps shy of my goal but am too new to Geometry Nodes to see the error of my ways. And, I don't know enough to properly search the web for clues to the answer. As you can see I'm new to this community and am hoping that I've followed its etiquette. My apologies if I haven't.