Textures for Mobile Platforms

When creating Textures for mobile platforms you will need to make sure that the Textures you create adhere to the following restrictions:

  • Textures can only be a maximum size of 2048 in either dimension as this is the largest size allowed by the PVR compressor.
  • Texture sizes need to be a power of 2 (i.e. 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, or 2048).
    • You can have non-square Textures like 512 x 64, just as long as the size remains a power of 2.
  • You should use square Textures whenever possible as they make more efficient use of memory.

When importing Textures into Unreal Engine 4 (UE4) the following Texture settings need to be applied to your Textures to ensure they work and perform correctly:

  • It is recommended that you only use TC_Default or TC_NormalMap in the Compression Settings to help ensure that your Textures take up as little memory as possible.
  • The sRGB property should be enabled on all Texture maps except for Normal Maps and Masks.

Texture Usage in Materials

Generally speaking when utilizing Textures inside of your Materials meant for mobile devices, you should try and use a few Texture as possible. This will help reduce the memory footprint of your project and will also help cut down on the amount of Textures fetches that are needed. Generally speaking, most opaque (non-transparent) Materials that have only one layer should only need the Base Color, Roughness, and Normal inputs to come from Textures. All other inputs like Metallic should use Constant's Material Expression nodes. The image below shows how the Textures used in the M_Metal_Steel Material that can be found with the Mobile Starter content have been setup. 

TextureUsageinMaterialsExample_01.png

Most Materials that only have one layer like the Material shown above, should have their Textures setup in the following manner as it only requires two Textures:
  • Texture 1
    • BaseColor in RGB.
    • Roughness in Alpha Channel.
    • Compression set to Default (DXT 1/5, BC1/3 on DX11).
  • Texture 2
    • Normal map in RGB
    • Compression set to Normalmap (DXT5, BC5 on DX11) .

Per-Device Texture LOD

With the release of Unreal Engine 4.8 you can now specify Texture LOD settings on a per-device basis as opposed to per-platform. To set the Texture LOD settings per-device you will need to do the following.

  1. From the main Tool Bar open the Devices Profiles manager by going to Windows > Developer Tools and then clicking on Device Profiles.

  2. After clicking on the Device Profiles option the following menu will be displayed.

  3. From this menu select the device you want to edit and then click on the three dots that are to the left of the device name to open that devices profile.

  4. To make a change just click on the property you want to adjust and then input what you want the setting to be.