2
$\begingroup$

I would like to procedurally create a ceiling like the kind you'd find in an office building, with the following features:

  • There is a frame around each tile (like a 'mortar' when using a brick texture), with control over how big the spacing is
  • Options for which tiles (created as separate objects) go into the grid. For instance: some tiles are textured, some tiles are light fixtures, some tiles are vents, etc
  • Control over the dimensions of the ceiling, in a way that as the dimension changes, the number of tiles is automatically updated to fill the space

I have tried to achieve this using Instance on Points, but the control is pretty crude (more like an Array modifier than anything) and I would love to know in particular how to make it so the lights/vents/tiles are added to the grid procedurally with the option to control what goes where, or even the option to generate the pattern at random.

Some references to illustrate what I would like achieve:

enter image description here enter image description here enter image description here

$\endgroup$

1 Answer 1

2
$\begingroup$

Here's an example of a setup that spawns tiles with a mortar:

I have Tile + Mortar and Mortar (as opposed to Tile and Mortar), so that changing the mortar size doesn't move everything around:

To use some collection of objects as tiles, simply at any point convert faces to points, and spawn the collection's instances on them. You will need either to ensure the size of the tiles matches the Tile (Tiles + Mortar - Mortar), or normalize the dimensions of the tiles (all $1×1$ units/meters), and scale them according to the setting, like I do below:

$\endgroup$
3
  • 1
    $\begingroup$ Wow! I'm blown away by how fast you've come up with this solution. I almost got there myself using a combination of Math nodes and a Bounding Box node to grab the size of the input tiles to calculate the size of the Grid, but then I just saw your answer. I really like this solution a lot. I'm not familiar with the Floor math node, what does it do exactly? $\endgroup$ Commented Oct 6, 2023 at 19:45
  • 1
    $\begingroup$ @GlenCandle The floor operation rounds off a value to the nearest integer. While Ceil rounds it up $\endgroup$ Commented Oct 6, 2023 at 20:10
  • 1
    $\begingroup$ yes, floor, as the name suggests, rounds down (for positive numbers it's the same as truncate) $\endgroup$ Commented Oct 6, 2023 at 20:26

You must log in to answer this question.

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