0
$\begingroup$

Im modeling a roof and want to cover it with tiles. I’ve chosen to also model the individual tiles insted of using a texture or the like. Now I’m at a particular part of the roof that has a complex shape, so I cannot proceed with the same technique I’ve used before. That is using a 2d-Lattice as explained here: Emboss text onto curved surface

This method has worked fine for simple surfaces as in Image 1.

This method has worked fine for simple surfaces as in Image 1.

Now that I’m trying to fit my tiles to a more complex roof-shape as in Image 2, however, the lattice will no longer do. I’ve tried to use a 3d-Lattice with 1 surface according to the roof shape and the other squared around my tiles, however this did not yield the desired result (Image 3).

Image 2

Image 3

So my question is if anybody knows a method or a workflow that will fit the tiles neatly to the surface in image 2 and image 3.

So far I’ve reverted back to single handedly modeling every tile together with maybe a curve modifier or something similar but this is really time consuming and won’t look too good.

$\endgroup$

3 Answers 3

0
$\begingroup$

I'm not an expert regarding lattice, so my solution might not be the best fix, and depending on my understanding of your description, it might not even solve your problem entirely.

The way I see it, you are using a square of tiles that won't fit the shape of the roof piece without major deformation, causing it to look "wonky". I got two suggestions that might fix this, but I can't promise.

  1. Shape the lattice so it looks more like the shape of the roof piece while remaining 2D, of cause. Then build a pattern of tiles on the lattice that fits its shape (more or less)

  2. Instead of trying to fit a square of tiles onto the roof piece, try and make multiple slimmers rectangular lattices with tile patterns. This will still cause deformation in most cases, but less than with the entire square, and surely worth a shot if the first solution didn't work.

I hope this helped, but if not, I'm sorry to have wasted your time.

$\endgroup$
1
  • $\begingroup$ don't worry I'm glad you took the time to answer. What you said is about how I would have done it if there was no other solution. Fitting the lattice to the desired surface is something I've done already (picture 3), however my tiles don't interact with that anymore because the lattice shape should resemble the object shape (tile) it's bound to. So I would have to fit the tiles too, but this would result in manually fitting everything altogether. Right now I've used a lattice to fit the more even part and try to place individual tiles, each with an individual lattice, for the more complex part $\endgroup$
    – Rabbit
    Jul 20, 2021 at 1:13
0
$\begingroup$

So far I haven't been able to find a solution that satisfies me, so I'll update my workaround in case someone is facing a similar problem. Someone at blenderartists.com suggested that using geometry nodes might do the trick, but due to the shape of my roof this brought up several other problems which I/we couldn't fix.

So here's how I do it right now:

enter image description here

Essentially I fit small groups of tiles or even just a single tile to the surface using a lattice and then correct their position relative to each other while modeling the tiles by hand once they were fit to the surface.

This does not look uniform, which can also be good, but is very time consuming. At least it gets the job done.

Would still be glad to know about a better method.

$\endgroup$
0
$\begingroup$

So I was finally able to find the desired solution, this can be read up here: https://blenderartists.org/t/fitting-geometry-to-surface-tiles-to-roof-with-complex-surface/1317247/14

In short:

  1. Make a retopologized version of the shape
  • Slightly scale up the shape because the retopologized version will lose some scope. Make sure not to change the initial shape itself but just to extend it at every side.
  • Add Object Plane, scale it up to cover your entire shape from view. Depending on the Shape of the tile you wish to tesselate, keep it a square or turn it into a rectangle representing the desired proportion.
  • Subdivide the plane until the Faces on it have the size of one tile (15 Times in my case).
  • Use “Snap to face” with options “closest”, “project individual elements” selected. with your view positioned so that the Plane covers the entire Shape, hit “G”, and right click. Select all the snapped faces and quickly check if they cover the initial shape entirely (exceeding it slightly), then seperate them by selection. ← Retopologized Shape

enter image description here

  1. Make a seamless tile (sure this could also be done more elegantly)
  • Model a single tile
  • Use 2 Array modifiers to have the tiles line up in the desired angle, hit apply.
  • Use Boolean modifiers to cut out 1 Tile + Surroundings Top-Bottom and Left-Right (Important! If you rotated the tile, do NOT reverse the rotation for a more obvious boolean cut, as this will influence the scale of the array modifier, which has to line up on 1.000 for both axis for the tesselation to work.)
  • Check the result using 2 array modifiers on the seamless tile (not applying them).
  • Clean up the seamless tile, deleting excess vertecies created by the Boolean.
  1. Use the “Tesselate” option of the Tissue Addon
  • Select “Rotation: Active UV” in Object Data Properties
  • Rotate the UV of the retopologized shape into place.
  • Optional: Use the “Merge” Option to remove doubles.
  1. Place the tesselated Roof
  • Remove Doubles
  • Put the tesselated roof back into the desired position.
  • Optional: Use Proportional Editing to make the tiles at the edges are even, make sure not to distort the shape too much.
  • Use Boolean Modifiers to cut excess geometry (I’d advise to remove doubles again after every boolean application as this process creates quite some geometry which can cause problems).

This is the result: enter image description here

$\endgroup$

You must log in to answer this question.

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