0
$\begingroup$

I want to create an Array procedurally in a way that every iteration of the original geometry is calculated slightly differently. Is it possible to do that?

In particular I want to make an object that is distorted along its normals (which I can do), and then I want to make an array of that object, where each iteration of the object is distorted more and more as I increase the number of objects in the array.

Can anyone outline how this might work?

$\endgroup$

1 Answer 1

1
$\begingroup$

You have no access to the (shared) geometry-data of instances created in GN.

You can give instances individual object-level transforms. (If you like, you can independently scale, translate, and rotate the vehicles carrying the instances, and the instances will follow, but you can't get at the cargo.)

In order to manipulate the meshes of the instances individually, they must first be Realized. But that converts the instances into one big mesh.

So you must give the bits of that mesh a memory of which instances they were, by Capturing their instance-indices before conversion.

That means a tree something like this:

enter image description here

enter image description here

$\endgroup$
1
  • $\begingroup$ Hey Robin, thanks for weighing in here. This is a really cool solution for applying global transforms. But if I have my node tree set to displace all of the vertices randomly, how would I set it up so that each iteration gets a number added to an input (i.e. "seed" or "noise scale") for each duplicate? I.e. Iteration 1 = X value, Iteration 2 = X value +1, Iteration 3 = X value +2, and so on. $\endgroup$ Jul 24, 2022 at 0:33

You must log in to answer this question.

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