Current thumbnail:
Not sure this is in the correct place, but anyhoo…
For one reason or another I’ve not really been feeling very creative lately but I have had an urge to see if I could make myself a procedural dry stone wall geonodes setup. Why? Mainly because my images usually have dry stone walls in them and, in the main, I either use some very good photo scanned models or use image textures. These are great - and probably always better in most cases - but not as adaptable and sometimes I may want something specific or a bit different. The second big reason is seeing if I could do it, and learn some stuff about geometry nodes in the process. I 'm having a bit of fun anyway.
What I’ve come up with so far is quite basic, and probably very hacky, but I think it has some promise (at least as background/middle distance props where looking superficially OK is OK!).
… and in a very quick and dirty ‘scene’ (very far from my best work…):
So, with the different parameters I can go from normal not very random walls (with a very basic and not good option for mortar) through to quite random stones, more akin to a rural dry stone wall. I’ve got options for course height, block width, adding cap stones, with or without crenelation, random rotation and alignment of the stones, some vertical displacement, I can vary the noise on the stones so they are either very uniform or very messy, can alter the degree of subdivision, alter the scale of the stones (fine tuning if the gaps get too big) and so on and so forth. Works on a curve as with most of these types of things.
Must say that this uses existing node groups from @higgsas (many thanks Higgas!), Bradley Animation and Erindale - doubt I would have even got to this basic level without them (so thanks again!).
The images above just show some basic variations (the materials are all from Blenderkit - not my own but the ‘Mossy Rock’ on the 1st three does work quite well I think).
Limitations: Too many to list, but:
- Stones not varied enough or realistic in shape yet (as noted above, probably look ok as a mid-distance asset, but not really a ‘hero’ asset… though not sure that’s a major problem for me)
- My lack of geonodes knowledge means there is far too much manual tweaking needed to fix issues (like when gaps appear, I’ve tried to work out how to move the instances but can’t get it to work, so basically need to eyeball it by changing the scale of the instances)
- No collision detection of any kind, so instances do overlap (but I’m not that fussed as I hope nobody is going to look that closely!?)
- It wouldn’t be much good for anything other than gentle gradients (the way it currently works, the stones wouldn’t align as they do in real life)
- Currently can only deal with flat tops - so walls which slope or have any changes of height wouldn’t work
- Cap stone and mortar options are dodgy at the moment
- Breaks easily. Have to be very subtle with an control without it going bang and destroying itself.
- Quite slow and memory intensive at times.
- And more…
To Do:
- Fix all of the above - most of which I know how to do (and some I have no idea)
- Have the option to remove parts of the wall and add rubble - so you can things which are a bit less perfect (or completely destroyed)
- Add ability to add my own stones from a collection (at the most its just an instanced primitive cube mesh which is then manipulated)
- Options for moss and ivy
- Options for damage to individual stones/bricks
- … and no doubt much more that I can’t think of.
I have no real aim with this other than to maybe use it in some of my projects (and have the aforementioned fun), but I thought I’d share some of the outputs anyway if for no other reason that I haven’t done anything since October and I may get some pointers on how to make things better. I’ll probably keep sharing my progress, and maybe some questions on how to do things, even if I doubt I’ll be able to share the node group (as, as mentioned above, it uses other people’s products).