UV Map and Material Optimization
This will simplify things as you could have as many materials as possible, as Vulkan packs these textures on loading. So your maps could be as small as you want.
- Leave about 10% space in each UV map for changes in the future
- Every sharp edge should also be a UV seam; the Normal bevels need some space
- 8-pixel margin should be maintained between UV islands
- 512px/m texture density in general (unless using tiled texture technique)
- Make sure
UV0 and UV1 map names are consistent
UV0 is for texture/normal detail
UV1 is for the livery design
UV Packing
- Textures should be designed for 4096x4096 in game resolution or less
- A lot of optimization required to achieve high enough pixel density for best quality
UV Overlap
- Remember to overlap UVs on duplicate objects
- Mirror UVs with a line of symmetry (unless there will be obvious mirroring in the texturing)
- Edges of the same material can be overlapped
- Hoses and wires should overlap
- Undersides of bumpers, fenders and skirts may be mapped to a common UV space if they do not contain unique details.
- Faces at the edges of panels on the 2nd UV may be projected non-orthographically if it is necessary to avoid severe stretching.
- Alternate body parts should have their 2nd UV projected over the top of each other, so that a paint design will look similar on all possible versions of the vehicle
Example
Using these tips, I made an example piece with the leaf spring.
- This leaf spring has:
- An axis of symmetry
- UVs that can be square
It is now optimized and has no jagged edges between the leafs.
BEFORE (bad)
AFTER (good)
UV0
(for texture and normal detail)
Squaring off UV maps
- We prioritize normal map bevels over stretch, the maps that do include a bevel, should either be perfectly vertical or horizontal
- Please check the references to see when there is too much stretch and it is acceptable to have a non-horizontal or vertical UV map
- Remember to minimize stretch within the UV map, if there are no normal map bevels there
Please see this page for examples:
Making Edges Straight for Normal Bevels
Do not have UVs with bad orientation and non straight borders!
If it is not strait it will cause unnecessary anti-aliasing issues like in this example:
UV1
(2nd UV Map, for vehicle wraps)
- This map needs to be easy to look and the UV maps need to be placed by their real life location.
- These maps do not need to be squared off
- Maps should be created with the minimum amount of stretch
- Most faces on this UV map should be orthographically projected from top, side or front.
- Unused UV maps need to be 0 width and 0 height, then placed at 0,0.
- Body panels should not overlap to prevent reversed text
This is so developers and modders can create a wrap for the vehicle easily without mirrored text, or weird stretching. Unlike the other maps, this one is usually created in photoshop, so the location of the UV islands should be placed in their 3d location.
UV Map Examples
An example of UV mapping for an off-road tire and a regular rim:
Pixel Density
Interior
Pixel density of body panels and exterior elements should be close to Vivace to achieve the same normal map details quality.
Pixel density multipliers:
- Steering wheel / panels with text and icons / buttons / diffusers = 150%
- Dash / panels in front of player view = 100%
- Low visibility UVs (floor, background panels, cables) = 60% with overlapping optimization
- Hidden UVs = 30%
Exterior
- Always Visible parts such as the body panels = 100%
- Not always visible such as the underside = 75%
- Faces that are only visible when a part disconnects = 50%