Hi everyone.
I decided to jump into the geometry nodes hype .
The theme is so vast and I’m just started learning. Greatly inspired by the great post by @sozap (Buildings and streets with some geometry nodes), that gave me the hint to understand it.
I’ve always liked to make repetitive architectural illustrations. For instance, in 2020 made this fantasy cubic city all by hand in 2.79 Blender version (no arrays, no geometry nodes, manual placement and duplication):
But now we have powerful geometry nodes. What about give it a try?
Soooo. The next is my third aproach to achieve some sort of a “decent town maker”.
Disclaimer: this is not a tutorial
The idea is, through simple mesh (i.e. just an edge) you can model the side of a street.
First I modelled some housies, doors and windows. Super simple models to experiment. Housies have two shaders with random colorRamp nodes, one for facades, other for roofs.
Next, with the base model (some random mesh edges that gives the borders of street facades) I started the geometry nodes by moving those edges in Z -0.5, an Extrude Mesh same edges 1 meter tall.
After that, I placed points at the center of the generated faces through Mesh to Points, capturing their vector to later align instances to normals.
Next I placed Instance on Points aligned to faces. I instanced the full housies collection, making random selection of individual instances.
Next, using same center faces points and face normals, I randomly places instances of the doors collection, reducing creation probability to 80%, and randomizing its scale.
Next on, I Realize Instances and Separate Geometry in order to obtain faces where to distribute windows (selection where made through facade shader). I then Split Edges and Scale Elements.
The I “Distribute Points on Faces” and “Instance on Points” elements from “windows” collection, aligning them to faces’ normals. (I’m sure there’s a simplier, cleaner, neater method to do this).
Next on, I made another face selection (housies roofs’) with “Separate Geometry”, overscale them with “Scale Elements” and the “Extrude Mesh” to give the more roof apparence.
Finally I joined everything with “Join Geometry”.
Here’s some Eevee renders:
Tool in action:
So far so good, I think (for someone who’s never been into geometry nodes).
So what’s next?
- Improve workflow.
- Improve window placement (maybe through specific face selection)
- Make more complex models
- Shaders
- A street generator tool for this kind of model (that maybe can place fountains/benches/stairs/etc)
Please let me know what you think.
Thanks for viewing!