I have several images of ceramic tiles, square shape. I need to fill the surface with them so that they lay down randomly, and not I manually arranged them individually.
I would put them into a single texture into a grid of unique tiles and then use math to manipulate texture coordinates and noise textures for randomisation:
You could also use the same principle, to scale them by -1 in both axis or rotate.
And that's a more complete node group with mirroring and rotation and also white noise nodes for better randomness:
This method is pretty much the same as Martynas'.. I thought it was going to be lazy, avoiding the math by using a non-random Voronoi to do the grid.
- It subtracts the 'Position' of the Voronoi from the overall texture space to get UV-per-cell
- It uses the R & G of the (random) 'Color' output, with a stepped Map Range, to select a tile from the array of tiles provided in the Image texture.
- It uses the B of the 'Color', also stepped, to rotate the tiles randomly per cell
There's also a parallel 'Distance to Edge' Voronoi being run, in case that's useful.
The group can be used something like this..
.. for this kind of result:
I don't think it's as lazy as I hoped.. it doesn't actually save that many nodes..