Texture scale same on different objec sizes

Hi, I have 3 objects (table surfaces with edges).
On the big table will show full texture.
The half size table will show half the texture.
The quarter size table will show a quarter of the texture.

But the problem is that with uv-unwrap, the half and quarter object get streched textures. Is there a way to apply the texture so it will be ‘cut’ when reaching the objects full length?
I need to do this for a very large number of objects, so any help is welcome.

What I have now:

What I want:

If the textures are seamless, one method that could work is texture box mapping.

If you use that setup, yout texture will be applied all over your object in an automated way that doesn’t even use UVs. Also, it doesn’t have seams when used on complex shapes. It will work on any object as long as the texture’s orientation doesn’t matter too much and the object won’t deform in an animation.

texture oriëntation is important, but I found a solution. For the top I set the texture coördinate to object and for the sides I used (a copy of the same texture setup but with on uv texture coördinate and then select the sides and assign them to this second (material).

1 Like

Another slightly wild thing you can try is to use Object Coordinates divided by Object Info/Object Index where you set the objects Relations/Pass Index to 1/smaller scale (so if the object scale of the small object is 0.25, you would enter 1/0.25 which is 4. Only to closest integer though. Could possibly do it with greater accuracy using attributes or store info in geometry nodes or something. Might also throw in Geometry/Position into the mix if required.