Vehicle Texture Setup

Overview

Efficient Texture Workflow for High Texel Density & Low VRAM Use

This workflow focuses on maximizing texel density while minimizing VRAM usage by combining unique maps, tiled textures, and sticker/alpha cards.

Recent testing shows that we can use all material layers with no additional or little performance cost.


Why This Workflow?

  • Higher texel density without increasing texture memory
  • Better VRAM efficiency by relying on reusable tiled textures
  • No extra performance cost from material layers, meaning we can use them freely
  • Only 4 layers available (unless you add another material, then you get 4 more layers, but at the cost of a draw call), so we must prioritize which materials are tiled vs unique

Texture Methods

1. Unique Texture Sheet

Pros
  • Great for adding one-off details:
    • Edge wear
    • Dirt and grime
    • Unique metal variation
  • Perfect for tiled texture breakup and storytelling.
Cons
  • Objects with large surfaces will suffer from low texel density
  • Higher VRAM cost

Use When:

You need variation or hero details that a tile texture cannot give you.


2. Tiled Textures

Pros
  • Very high texel density for extremely low VRAM usage
  • Perfect for materials with repeated pattern (leather, fabric, metal, plastic, wood)
Cons
  • Repetition can feel obvious without breakup (use roughness map to break it up)
  • Not ideal for unique wear, decals, or storytelling

Use When:

You need crisp detail and they can be repeating like a leather or cloth texture.


3. Stickers / Alpha Cards

(decals, badges, screws, stitches, emblems, text, etc.)

Pros
  • Adds unique, high-resolution detail exactly where needed
  • Very VRAM-efficient—only small textures used
  • Great for micro-details without increasing base texture resolutions
Cons
  • Requires additional geometry (usually fine, but takes time)
  • Needs care to avoid clipping; matching the underlying mesh solves 95% of issues

Use When:

You need local detail without raising UV density for the entire asset.


Layer Order Materials

(recommended, not mandatory, workflow)

1. Base Layer (Unique Map)

Either car paint or unique textures that don’t need to be tiled

  • To set car paint
  • For objects that would take many layers to do tiled
  • For Radio Units
  • Very unique textures

2. Middle Layers (Tiled Textures)

Use tiled materials on one or more layers for materials like:

  • Leather grain
  • Carpet
  • Textured plastics, etc.

These give you high texel density and keep VRAM costs extremely low.


3. Last Layer Break Up Textures (Unique Map)

Use a unique map to add details such as:

  • Dirt / grime / oil stains
  • Edge wear and global roughness variation
  • Break up tiled materials, etc.

This layer provides global storytelling and hides tiling by adding variation.

Mesh Stickers

Sticker / Decal

Add alpha-based detail meshes where needed:

  • Text and labels
  • Bolts / screws
  • Seams and stitching
  • Emblems / badges
  • Unique worn patches or stamps

These add crisp local detail without needing a higher-res texture sheet.

Pro Tips

Running Out of Material Layers

You can still add another material as long as you understand the cost of draw calls.

See this article for more information on Draw Calls


Reuse Textures for Free

Using the same texture in multiple material slots, even across different materials costs zero extra VRAM.

Interior example

We’ll be using the Ardente interior shown above as an example of the new material setup (the name template should be carname_interior_main).


Layer 1

This layer contains the base material for the entire interior exported from Substance, using the 4k normal map mostly for bevels.


Layer 2

This layer contains the leather detail material, using a mask to select all the parts that uses it.

  • BaseColor Map: Color value
  • BaseColor Detail Map: Scale (how much the detail map is tiled)
  • Normal Map: Base bevels normal map
  • Normal Detail Map: Small (256x256px) tileable leather texture normal map
  • Opacity Map: Mask to determine which parts of the meshes uses the detail map
  • Roughness & AO Map: Same as Layer 1


Layer 3

This layer contains the headliner detail material, using a mask to select all the parts that uses it.

  • BaseColor Map: Color value
  • BaseColor Detail Map: Scale (how much the detail map is tiled)
  • Normal Map: Base bevels normal map
  • Normal Detail Map: Small (256x256px) tileable leather texture normal map
  • Opacity Map: Mask to determine which parts of the meshes uses the detail map
  • Roughness & AO Map: Same as Layer 1


Layer 4

This layer contains the carpet detail material, using a mask to select all the parts that uses it.

  • BaseColor Map: Color value
  • BaseColor Detail Map: Scale (how much the detail map is tiled)
  • Normal Map: Base bevels normal map
  • Normal Detail Map: Small (256x256px) tileable leather texture normal map
  • Opacity Map: Mask to determine which parts of the meshes uses the detail map
  • Roughness & AO Map: Same as Layer 1


Considerations

Another thing to consider is that if we want to add more detail textures for different materials, we need to create a new material.

In the case of seats, I added a new one called ardente_seats (ideally carname_interior_seats), so I could use the 3 extra layers for added details as seen in this picture:

  • Layer 1 is the same base as main interior material
  • Layer 2 has the seats leather detail material
  • Layer 3 has the fabric detail material

Stitches are being handled differently, since they are floating geometry mapped to a tiled texture, and they need to be their own material because of the alpha transparency mode.

  • They use a BaseColor Palette Map with a red texture so they can match body paint color
  • Also set Alpha Blend Mode to None using Alpha Clip instead for transparency
  • Threshold setting should be set according to what works best in each particular case


Car Paint Example

Layer 1 - Paint layer

  • Normal map
  • Detail normal on skin uv1 can be used for orange peel effect
  • AO map
  • BaseColor Palette Map
  • Clearcoat Map

Layer 1:

Paint layer, speaks for itself, unmasked, so it’s used as a base for the others that go on top.

As a Palette Map, any of the null R G B maps in the common folder can be used, unless vehicle needs specific two tone (or three) paint:


Layer 2 - Details layer

  • BaseColor Map
  • Metallic Map
  • Normal Map
  • Roughness Map
  • Opacity Map
  • AO Map

Layer 2:

Details layer, masked with opacity map, all non-painted parts with fixed roughness and metalness go here.


Layer 3 and 4

Can be used for additional tiled texture details using detail maps (Carbon Fiber for example).

The goal is to avoid masking the paint layer (Layer 1), so only the layers above it will use an opacity mask instead, and this kind of edge bleeding won’t happen.


ETK-I Example

  • Layer 1 - only paint:
  • Layer 2 on top with non-painted details:
Last modified: July 23, 2026

Any further questions?

Join our discord
Our documentation is currently incomplete and undergoing active development. If you have any questions or feedback, please visit this forum thread.