# Mipmaps

To get back to the earlier statements about texels, ideally one pixel of any texture will be seen as one pixel on the player’s screen. Since you cannot magically add pixels and detail to an image (without machine learning), the only way to do this is to start with a large texture and downsample or downscale it. Then, when the object is further away or smaller, the game engine knows that it can use a smaller version of the texture rather than loading the original. This is why UDK always requests textures in resolutions which are a power of 2.

alt text

Mipmaps are generated by UDK and Rocket League at runtime to save on memory and processing power. Objects in the background are rendered with a reduced resolution/file size version of the texture. A phenomenon known as “texture popping” happens when the game streams (or loads) the higher resolution version of a texture and applies it to an object while the player is watching.

Find more information about mipmaps within UDK in the Custom Materials section.

# Level of Detail

A similar and related concept is the LOD system, or Level of Detail. This same process and line of thinking is applied to the meshes themselves, including the “LOD popping” phenomenon. UDK allows for multiple meshes to be related to one another, and dynamically trades them out as the player gets nearer or farther.

# Optimization not finished

This has not been explored much by the custom mapmaking scene, but it could be a crucial step in optimizing the performance of a complicated map.

Here are some general steps you can take to improve the performance of a map:

  • Use Dummy Asset materials
  • Use Dummy Asset static meshes for background elements
  • Reuse the same static mesh for duplicate objects rather than having separate models
  • Reduce the polygon count of custom models
  • Reduce the texture resolution for custom materials
  • Use precomputed (built) lighting where possible
  • Reduce the speed of kismet loops