# Enable mipmap streaming

> Enable mipmap streaming, make a texture work with mipmap streaming, and change the mipmap level of a texture.

To enable mipmap streaming, follow these steps:

1. Go to **Edit** > Editor > **Quality**.
2. In the **Textures** section, enable **Mipmap Streaming**.

By default, this enables mipmap streaming for all the cameras in your project.

In the Editor, mipmap streaming is active in both Edit mode and Play mode by default. For more information about configuring mipmap streaming in the Editor, refer to [Editor settings](/engine/6000.5/manual/unity-editor/editor-settings-reference/comp-manager-group/class-editor-manager.md)

## Make a texture work with mipmap streaming

Follow these steps:

1. Select a texture asset in the **Project** window.
2. In the **Texture Import Settings** window, select **Advanced** to open advanced settings.
3. Ensure that **Generate Mipmap** is enabled.
4. Enable **Stream Mipmap Levels**.

If you build your project for Android, you must also follow these steps:

1. Open the [**Build Profiles**](/engine/6000.5/manual/building-and-publishing/build-settings/build-profiles.md) window.
2. Set **Compression Method** to **LZ4** or **LZ4HC**.

### Lightmaps

To enable mipmap streaming for lightmaps, follow these steps:

1. Go to **Edit** > **Project Settings** > **Player**.
2. In the **Other Settings** section, enable **Lightmap Streaming**.

You can edit the mipmap streaming settings of the lightmap assets in the same way that you can edit settings of any other texture, but they reset to their default values when Unity regenerates the lightmaps. To solve this, you can tell Unity to apply these values when it generates the lightmaps. Use the **Lightmap Streaming Enabled** and **Streaming Priority** in the [Player settings window](/engine/6000.5/manual/unity-editor/editor-settings-reference/comp-manager-group/class-player-settings.md).

### Custom meshes

If you create a custom mesh in a Unity script, Unity doesn't automatically calculate the UV density of the mesh. This means Unity loads the wrong mipmap levels.

To prevent this, do either of the following:

* Use the [Mesh.RecalculateUVDistributionMetrics](/engine/6000.5/script-reference/unityengine/mesh/recalculateuvdistributionmetrics.md) API to manually calculate the UV density of the mesh after you create it.
* [Import the mesh as a model file](/engine/6000.5/manual/assets-and-media/asset-types/models/importing/importing-model-files.md) instead.

### Unsupported objects

Unity can't automatically calculate the correct mipmap level for textures on some objects, because it can't get the mesh and UV data it needs from them. This includes objects such as:

* [Decals](/engine/6000.5/manual/visual-effects/decals.md) textures.
* [Reflection Probe](/engine/6000.5/manual/lighting-overview/reflections/reflection-probes.md) textures, because they use mipmap levels to store lookup tables for material roughness.
* Sprites, which use a [Sprite Renderer](/engine/6000.5/manual/unity2d/sprite/sprite-renderer-reference.md) component.
* Objects rendered with Entities Graphics.
* Objects that generate their geometry procedurally at runtime, such as [Particle Systems](/engine/6000.5/manual/visual-effects/particle-systems/class-particle-system.md), [Visual Effects](/engine/6000.5/manual/visual-effects/vfxgraph/class-visual-effect.md), [Line Renderers](/engine/6000.5/manual/visual-effects/lines-trails-billboards/rendering-lines/class-line-renderer.md), and [Trail Renderers](/engine/6000.5/manual/visual-effects/lines-trails-billboards/rendering-trails/class-trail-renderer.md).
* Shaders that use UV texture coordinates in a channel other than [Mesh.uv](/engine/6000.5/script-reference/unityengine/mesh/uv.md) (also called UV0).
* Shaders that change texture coordinates other than scale and translation.

For these objects, set the mipmap level manually. If you don't do this, Unity uses low-resolution mipmap levels, which might display as blurry depending on the distance from the camera. Refer to [Override the mipmap level of a texture](/engine/6000.5/manual/materials-and-shaders/textures/texture-loading/texture-streaming/override-mipmap-level.md#use-the-api).

## Additional resources

* [Texture2D.streamingMipmaps](/engine/6000.5/script-reference/unityengine/texture2d/streamingmipmaps.md)
* [SystemInfo.supportsMipStreaming](/engine/6000.5/script-reference/unityengine/systeminfo/supportsmipstreaming.md)
