2
$\begingroup$

I got these weird floor tiles that don't neatly align (ignore the other furniture in the pic). enter image description here A simple plane in blender is acting as the floor and I want its texture to be just these tiles

I tracked the camera in fspy and projected from its view the image onto the floor plane. The tiles the camera does see are textured correctly but they do not extend beyond the camera view, so how can I do that?

Trying what Mr A suggested leads to this: enter image description here

$\endgroup$
2
  • $\begingroup$ ??? ... "but they do not extend beyond the camera" $\endgroup$
    – vklidu
    Nov 24, 2023 at 21:03
  • $\begingroup$ The camera doesn't see the whole room, just a part of it, so most of the floor gets no texture projected onto it from the camera. These tiles are a repeatable pattern though and I need the entire floor to be made of them without needing to take pictures of every inch and make a bunch of projections. $\endgroup$
    – Thanasis
    Nov 24, 2023 at 21:25

2 Answers 2

1
$\begingroup$

I think the ground texture would tile fine if you consider the section I marked in the image below. I am sure you know that you will still need to do some clean up in an image editing software to make the edges blend well.

tile


Edit: As mentioned in the comments, I failed to notice that the tiles also shift horizontally. I am also assuming that the tiles will align every n1 tiles vertically and every n2 tiles horizontally which may not be the case. I propose a different approach below that should work regardless.

  1. Extract one tile from the ground texture. Give it clean dimensions and parallel edges to make working with it easier.
  2. The tiles have a bevel on two opposite vertices. Make sure that the edges they create are parallel and perfectly match. Give them clean dimensions as well.
  3. Add an array modifier for horizontal tiling with constant offsets on x (tile width) and y (bevel height).
  4. Add another array modifier for vertical tiling with constant offsets on x (bevel width) and y (tile height).
  5. Set the array count to as many as you need to cover the surface of interest.

I marked the important measurements in the screenshot below.

Tile

Bonus step: Modify the material shader to introduce variability to hide the fact that the whole floor was made from one tile worth of textures.

Shader

Here is the blend file:

$\endgroup$
4
  • $\begingroup$ This lines up perfectly (apart from the weird lighting) in the axis going towards the door, but it doesn't line up "horizontally". I tried to crop it such that it gets fixed but no. I think I need to somehow offset each horizontal tiling to make it work? $\endgroup$
    – Thanasis
    Nov 24, 2023 at 23:21
  • $\begingroup$ I am sorry. I failed to notice that the tiles shift horizontally as well. I gave this a second try and updated my answer. The new approach should work even if the tiles never line up. $\endgroup$
    – Mr A
    Nov 25, 2023 at 12:50
  • $\begingroup$ Thank you for going above and beyond with additionally doing this nice shader! $\endgroup$
    – Thanasis
    Nov 25, 2023 at 15:08
  • $\begingroup$ You're welcome! $\endgroup$
    – Mr A
    Nov 25, 2023 at 15:58
3
$\begingroup$

It was quite challenging for me to understand what dimension and beveled angle, does the tiles to be repetitive texture (because like the MrA's answer is solving arraying the segment, the pattern is not going to be seamless texture.


The solution is at the end trivial, you need the tile to be 7:6 aspect ratio.
That also creates a beveled corners in 45°.

enter image description here

Arrayed for the first X7, Y1 and the second X1, Y6 ...

enter image description here

If you Apply modifiers and Cut (K) it in this way (texture or mesh doesnt matter) you get a pattern for seamless texture ...

enter image description here

enter image description here

UVmap can be set directly from source image ...

enter image description here

enter image description here

enter image description here

$\endgroup$
6
  • $\begingroup$ I think making a tileable texture is simpler than the array method, plus you need less geometry so it is more optimized $\endgroup$
    – Thanasis
    Nov 25, 2023 at 15:10
  • $\begingroup$ Sure :) My point wasn't to advice you to work with geometry or texture, but mainly find a tile-able pattern of your floor. See edit. $\endgroup$
    – vklidu
    Nov 25, 2023 at 15:15
  • $\begingroup$ Yep no worries, its good to have multiple ways to solve a problem. $\endgroup$
    – Thanasis
    Nov 25, 2023 at 15:40
  • $\begingroup$ Sure ... use what fits to your needs the best ... you can use MrA's solution for a single large image texture that is covering entire floor, but if you are looking for a way to create a seamless texture (that is what should generate real floor too) you can't get there with MrA's solution because his tiles are just arrayed and they never meet at rectangle edges (imgur.com/dS3Btxf) because his current aspect ratio doesnt allow such thing. $\endgroup$
    – vklidu
    Nov 25, 2023 at 15:51
  • 1
    $\begingroup$ @MrA ... I agree, it could be much simpler solve it -to know the real tile dimension (I spent a few hours (again) by re-shaping tile back and forth, driving me crazy why I can't make it seamless (I thought just scale entire pattern in x or y should work, but it destroyed the seamlessnest on opposite side). $\endgroup$
    – vklidu
    Nov 25, 2023 at 16:41

You must log in to answer this question.

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