2
$\begingroup$

I created several parallel instances of a wooden beam object using the following Geometry Node Tree:

enter image description here

And with the following Shader Node Tree:

enter image description here

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:

enter image description here

Achieving the following improved result:

enter image description here

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:

enter image description here

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.

$\endgroup$
2
  • 2
    $\begingroup$ You could use an Attribute (Geometry Nodes) for each beam, from 0 to 1. Then use it as factor for both beam ends and shading (attributes are accessible from shader editor !). So each beam would have is own random 0 to 1 value. Works after Realize Instances. That's how I would approach it. To re-phrase, get rid of the Object Info > Random in favor of an Attribute. $\endgroup$
    – Lutzi
    Commented Jun 11 at 0:08
  • $\begingroup$ Thank you Lutzi. Worked GR8 $\endgroup$
    – Andrew
    Commented Jun 11 at 10:58

0

You must log in to answer this question.

Browse other questions tagged .