Make UV maps scale to specific size of image

Ok so sorry it’s hard to write exactly what I’m talking about in the title - not sure if that made sense. I know there’s probably a one button way of doing this that’s super simple but I have looked and cannot find it, help would be appreciated.

For what I’m trying to do, I’m going to use floor tiles as an example. So if I get a texture from Poliigon, they tell me that the image they have made will make up 2x2 metres:

Now when loaded into the image editor, I know that whatever resolution it opens comes in at, it’s 2m x 2m:

image

But apart from scaling manually and kinda eyeballing it, since the units in my scene are already setup, is there any way of specifying the image is a certain size and Blender will scale the UV accordingly?

I’m having a hard time explaining it so let me know if this doesn’t make any sense. Thanks for your help though.

Since it’s a floor, it’s easy - don’t use UVs. Use object coordinates (may need to swap channels around) and a checker/brick texture (scale 1, everything 1) and multiply coords with a factor to get it right (or 1/factor). When you have done that, replace the checker/brick texture with image texture and multiply/divide accordingly.

Thanks for the reply! I’m kinda getting what you mean, I’ve gotten a checker texture to be the right size:

You kinda lost me at the multiply coords with a factor part though…

Would this work in other use cases too? For example, for cabinet doors, from a supplier you can download an image of a particular color/pattern, and I know the image represents a full sheet which is 2.4m x 1.2m:

If there’s a simple way of getting this to work, that way I’d know with every use case (where you know how big an area the image represents) that it is perfectly to real-world scale.

Not automatically, no. Because we don’t have access to the objects dimensions. But you can use the below approach to find the 1.0m reference scale. The square on the left is exactly 1m x 1m. I’m using mm, so I’m dividing.


But, set it up like this and just eyeball it based on that. What people will notice is having the exact same texture on each cabinet door - it looks like sloppy CGI. Main grain direction is more important than end grain. Fewer will notice it being made from a single wood pane even if the manufacturing process calls for multiple panes glued together. But nobody will notice the scale being off unless it’s by a lot.
Ceiling, floor, backsplash and wall tiles; sure. Scale matters more here because you can use it to measure distanced by counting tiles with a known tile size.
My favorite for wood is to create a huge seamless texture where I just lookup different parts of it. Often not using regular UVs at all, just spaced out points that I add to box mapped.

I think I’m following. I’ve made a more simplified node setup, and it seems to work:

This is the result applied to a few different types of objects:

I’m thinking I could just use a mix node with the material preview view, that way I can see where my 1m ‘guide’ checker squares are and how my texture sits in that. I think that comes out pretty good:

Is this what you mean?

Reason I was talking about the wood too is I know none of it has to be perfect but I mean if there was a one button press way of making it exact for things like these, then to me that’s always better than eyeballing. But if you can’t I’m ok with eyeballing it I was just wondering if there was a perfect way…

Is it a possibility though, could we scale all the faces in the UV editor based off an edge or face? I mean I could just add in a 2 x 2 (or whatever size the image is known to cover) plane with my floor object in edit mode, select everything and scale it so that 2x2 face fits the texture bounds exactly (while also applying that same scale to all other faces) and then everything else would come out perfect too, is that possible?