UV Unwrap, Visual and Channel Packing

UV unwrap

It is widely considered best practice to keep the UV island as straight as possible.

Straight UV 

Reasons for this are;

  • It will make packing UV islands easier and less space will be wasted.
  • Straight UV helps reduce staircase effect on textures.
  • On mobile platforms, texture space is precious as the texture size is usually smaller than console or PC. Having good UV packing will ensure that we get the most resolution from our texture.
  • It might be worth to have a slightly distorted UV and keep the UV straight for better quality texture.

Place UV seam in the right place to make them not too visible. This is for visual quality purposes, as the texture seam will look bad on a model.

Split UV island where the edges are sharp, also give some space between the UV island. This will help later for creating a better normal map when doing baking process.


Create details that can be seen (phone screens are small, so there is little point in making an intricately detailed model that can't be seen in final image). Take this into account when creating texture. For example, we don't need a 4K texture with lots of detail for a barely visible chair in the corner of the room.

Small Details

In certain cases we will need to exaggerate edges (adding extra highlights) and shading to improve shape readability.

  • Mobile platforms generally use smaller texture, it might be hard to capture all of the detail within this small texture.

Bake as much detail as possible

  • Phone screen are small and some detail are better to be baked on the diffuse texture itself to make sure those detail are visible.
  • Elements such as ambient occlusion and small highlight/specular can be baked and added to the diffuse
  • This will also enable us to not rely too much on shader and engine feature to get specular and ambient occlusion.


Bake Diffuse

When possible use grayscale textures that will enable color tinting in the shader. This will save texture memory at the cost of creating custom shader that enable this tinting. 

  • This need to be done selectively as not all objects will look good using this method. Easier to apply this to an object that has a uniform/similar color.
  • Another way to do this is using RGB mask and apply texture based on the color range of the mask.


Texture channel packing

Use texture channel to pack multiple textures into one. 

  • This help saving texture memory, as we can pack 3 textures into 1 texture using this technique. Meaning a much less number of texture sampler.
  • This texture packing technique is commonly used to pack Roughness/Smoothness and Metallic into 1 textures, but the application can be done for any texture mask.

Texture Packing

Use Green channel to store more important mask.

  • The Green channel will usually have more bits, this is due to human eyes are more sensitive to green and less sensitive to blue. Further reading on this can be found here. The roughness/smoothness map will usually have more detail than metallic and should be placed in green.

Set the texture to linear/RGB instead of sRGB color space for these map/texture.

Previous Next