1
$\begingroup$

I have this procedural building I created with geometry nodes following a tutorial. I want to use this randomly distribute these objects on a plane while giving the inputs random values. The inputs can be height, width and depth. 2 problems right now.

  1. Not sure how to randomly assign these values
  2. Unable to distribute them randomly across the plane in the X and Y axis, so created 2 inputs, inX and inY in the hope of randomizing them, but no luck!

This is my current node setup. The 'Grid' (name for my geo node) node is the procedural building that i'm trying to plugin. NOT THE GRID NODE BLENDER USES! (It's a bad name i know) (Ignore the seperate XYZ and random float, was just trying stuff which does not work!) enter image description here

Any help would be appreciated

Using blender 2.93.1

PS. Newish to blender to apologies in advance for the lack of understanding and technical terms!

$\endgroup$
2
  • $\begingroup$ Hi Maj, this is a good question and i would really want to say it's possible but AFAIK this is not possible with the current geometry nodes version. But i hope it will be possible in the future. The problem is that the point instance node can only take one object or the contents of a collection. There is a "kind of" workaround if you e.g. use animation nodes to create your instances, create them in that collection that you then use for your instances in geometry nodes. But i don't know whether you want to make that effort.... $\endgroup$
    – Chris
    Nov 20 '21 at 11:08
  • $\begingroup$ Hi Chris, appreciate the response. I don't really want to go to that much effort unfortunately, I was afraid this couldn't be done as i could not find any solutions online :( I'm going to try a different approach via scripting. $\endgroup$
    – Maj
    Nov 20 '21 at 13:54
0
$\begingroup$

In the 2.93 Geometry Nodes, every dynamic value has to be stored as an attribute. If you want to create a building on every point created by the point distribute node, you have to assign each point its own attribute values. Example regarding random values

This can be done using the attribute nodes; in this example i'm using Attribute Randomize to assign each point that has been scattered a random height, depth and width. If any of these are static you could just use the Attribute fill node instead.
Note that the attributes are stored inside the geometry - the input slot on the attribute field only determines the name of the attribute that will be used.

You'll also need to modify your building node - instead of variables you're now working with a list of attributes, so you'll have to use the Attribute Math -node in place of regular math nodes.

But then, i'd also recommend switching to Blender 3.0 - In the new Geometry Nodes the Value-Attribute conversions are done implicitly; the setup in your question might work just like this.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.