You’d want to try and break the ship down into pieces, then use the same UV/mesh for anything that is duplicated.
So yes, since the turrets, boats etc have duplicates, they could share the same mesh & UV.
If you need to add details to each, you can rig up the material to show said details and/or use decals.
Take advantage of mirroring, tiling textures, detail maps, vertex painting/blending, using geometry and UVs to place details like stripes, decals, etc. You could also use masks to layer tiling materials.
I think I’ll start with Frankie’s suggestion (I need to master the basics). But I’m afraid its a rabbit hole I can’t avoid indefinitely, should I be reading up on the methods Zac suggested?
-Also, is there any reason why an object can’t have more than one texture map in UE4?
You can take advantage of multiple UVs and textures in UE4. That’s probably a good idea for something this large. Still I wouldn’t go crazy and use 5 2048 textures to uniquely texture the whole thing.
I was thinking about this more last night, at the size above what you’re talking about is a model.
But if you want to walk around it, then that’s really more of a level made up of a whole lot of models each with there own materials and textures than a single model.
Short answer no reason at all but it would be like eating candy and not brushing your teeth afterwards. After a while your going to run into a bad case of decay
In a past topic I suggested that there is a difference between inherited performance loss as compared to procedural optimization of combining mesh with material assets. When it comes to geometry UE4 is very efficient at rendering HIGH detail geometry with little impact to FPS and rendering performance and even if as a single object with a 1 meg poly count (2 meg tris) UE4 with a decent video card will have no problems of pushing polygons. You can if you wish cut the model up into modular parts and export as separate objects as in place relative to 0 0 0 origin. This way you can drop the parts package into the scene and whatever is not visible will be culled and not rendered so the total poly count is “only” equal to whats in the view port. (excluding memory footprint of course)
Material though is where your going to run into inherited performance loss as the user can easily create noticeable FPS drop because there is no real way to control the optimization as a procedural process.
It’s actually very easy math using a single texture map at 4k resolution = 4096X4096 would be equal to the same area of resolution at 4 X 2048X2048 but in the process would inherit 4 times the performance loss as to draw calls.
So as a single map object by design broken down into separate object UE4 will cull what it does not see and for all thous objects using a texture atlas would only require a single draw call and not an additional call for each material added.
For that matter if you are doing mobile or VR using a texture atlas is almost a must.
A texture atlas is just a texture for a bunch of different assets put onto one texture sheet.
You can use material IDs as a mask to have higher resolution and sharper lines between different “sub materials” or textures. Epic is using a workflow like this for it’s Paragon characters, partly because they want to be able to change characters looks with skins. 1 material mask could allow you to have 4 (or more) different tiling materials on a model with one texture. So you could have a ship hull material, rusted hull, dirty hull, and a darker painted hull material with tiling 512x512 textures and a 2048x2048 mask, and save memory from having a bunch of 2048x2048 textures, and have higher texel density. It might not be the best approach for your use case, but it’s an option
With UE4, you shouldn’t be using spec for most materials, it’s mostly there as a legacy option. For PBR materials you just need a base color (albedo/diffuse), metallic (a value of 0 or 1 can work as well if it’s one or the other), roughness, and a normal map. Ambient occlusion textures can help but aren’t required. From what I’ve seen, most ships do not have much exposed metal. Painted metal or rusted metal is treated as a non metal in PBR.
Yes, textures do not have to be the same size. But I’d suggest keeping the normal map the highest resolution.