Modular models, textures/materials, UV mapping, sizing -> Some guidelines?


Not sure if this topic should be in Rendering or Content Creation… I think Rendering?

So, I’m creating modular meshes in my 3D drawing application. Walls, windows, doors, etc. The walls give me some headaches:

Walls can be of different sizes, like 4 meters wide and 3 meters high. Or 6 meters wide and 2 meters high. They can be of any size!

The part that I cant figure out is the UV mapping and texturing. Independent of size, if I apply the same material to different sized wall segments the texture should be the same size on all the walls so the walls connect nicely. If for example the texture is bricks, each brick should be of the same size on each mesh.

I thought to ‘fix’ this in my UV unwrapping. I could treat the UV space as 1x1 meter. This would mean I need to resize the UV islands according to the size of the model. Island parts will become bigger than the 0…1 UV space. But I read that all the UV islands should fit in the UV 0…1 space. If this is true, then I should create a materialinstance for each mesh with sizing parameters? Or… ??

I’m a bit lost here. Does anybody has some advice on UV unwrapping, island sizes, making materials look the same size on different sized meshes?

For your regular texture maps–your first UV channel you can have it beyond the 1x1 space. It’s only for your lightmap UV channel (second channel) that you need to stay in the 1x1 space.

Also, as far as modular workflow goes, if you’re constructing walls out of multiple pieces, it’s best to do a wall as a single piece rather than trying to construct a flat surface out of multiple meshes, that’s due to how the baked lighting system works in UE4 where there will be slight differences in lighting between meshes which becomes clear when you have a large surface made of multiple meshes. So you can split them at the corner, but avoid having a wall split down the middle.

But is a good thing to use the UV space as a 1m2? I know you need to take this into account when creating textures/materials. I’m looking for something to hold on to…

In Blender (but also Modo) as far as I can find out there are no nifty features/tools to make unwrapping easy when you consider the UV space as 1m2. I need to resize each uv island exactly independently which is very time consuming. Or are there any options/methods in Blender to tell Blender ‘1UV == 1m2’?

I don’t know what you mean by 1m2

I don’t know what the UV mapping setup is in Blender, but in 3ds Max it’s very easy to match the size between meshes by using a UV mapping modifier and using box mapping, then you would just set the box dimensions to a size where your texture is sized the way you want, then you can use the same settings for each mesh and it’ll map the same.

1m2 = 1 square meter.

Hi Martin Bean,

I think it is fine to use the full uv scale as 1m². This helps also to get the right size: If you know a brick is 15cm tall you just need to resize your single brick texture to only take 15/100 of the whole uv scale.

However you should early decide what your texture resolution is. For example what is the common base texture resolution for a 1 m² plane? Is it 256x256? 1024x1024? This depends on your game: for example if the player camera can get really close to the walls a 1024x1024 texture would seem more right than 256² and look not pixelated. This ensures that your texture density is more stable across your whole level and your world looks more homogenous. This need to be thought out with your target screen resolution. 1024² could be for 4k monitors too small, but for mobile phones too big.

However this should not be taken has a hard restriction. If needed use a higher or lower texture density for certain objects.

Maybe you can find here more information regarding modular workflow: Modular environments - polycount

Hope that helps.