0
$\begingroup$

For the purpose of creating a city scape randomly, I have been trying to randomly scale procedural building instances on a grid using geo nodes.

The problem is that if you are instancing the same building over and over again, you are essentially just squashing and stretching the instances. You get tall buildings with the same number of floors as the short buildings, just taller and skinnier.

What would be more realistic is if the instanced buildings' floors and windows could multiply or divide with the random values produced for their heights and widths.
Without designing numerous buildings in a collection, is there any way to do this?

To give credit and further explain the building I am instancing, I am using a well designed free model called POST USSR builder by Alexey Yakolvev that I found on Gum tree. Within the object there are parameters for controlling the number of floors and windows, however this has no effect on the instances.

enter image description here

$\endgroup$
1

2 Answers 2

2
$\begingroup$

Well, no, not in this way. As you see, instances has a round socket, that means you can't plug variable instances.

Instances are objects that's share the same object data. In other words, you can't make different instances, because they just the same. Take a look at Alt + D copies. They are linked, they are instances of the same data, and if you change one of them - the second will be changed also.

Instead of making the building and when distribute it on the surface, do the opposite thing: distribute the root thing on the surface and then add walls and windows on every root thing at the same time.

There is another way: make several buildings models, put them into one collection and instance them using this collection

$\endgroup$
2
  • $\begingroup$ Wouldn't there be a way of adding to the geometry nodes in the building object? $\endgroup$ Nov 22, 2021 at 21:17
  • $\begingroup$ While this doesn't answer my question as I phrased it, it is helpful. $\endgroup$ Nov 22, 2021 at 23:29
0
$\begingroup$

Following the advice, I have used instance IDs to call on small, medium and large buildings from a collection using the collection info node and "pick instance".

I varied their dimensions randomly in a narrow range.

$\endgroup$

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