As well as how many:
You can vary how ordered the stones are:
But you can also plug in a noise to control the shapes:
Now lets look at shape controls for the rocks, lets make them sharper with an inflate:
You can control how round each stone is:
Increasing this variable will retain more of the original stone shape, and keep the rounding to the sharp corners. Here we have an intense rounding value, but notice how the it still tries to push the shapes back out.
Ccontrols for cutting facings into the stone:
How many facets:
And an intensity control:
If you want some quick surfacing detail:
Or flatter shapes:
But this is the fun part. If we connect two layers together, the stones will dynamically scale down to reduce clipping. Here we have a second layer blending in but notice all the clipping! When we plug our mask in, the stones behave much more contextual and clipping is reduced:
We can however, control how much overlapping to allow. Notice here the stones get bigger the more overlapping we allow for:
If we connect our height data too, its possible to cull stones away in clusters:
But how do we color this I hear you ask! Well I got you covered there too. It also generates position data for each stone and using that, I can sample a color for each stone.
And here is an example with 4 layers:
I haven't put this thing through its paces yet, will be trying it out with some proper use cases in the future but I feel like I'm making progress!