DEEP MATRIX

[ GAME DEVELOPMENT ]

Texture Compression for Quest: Formats, Mips and Memory

5 MIN READDEEP MATRIX

On Quest, texture compression is about fitting the scene into a fixed memory budget without making it look worse. ASTC is the common compressed format on the platform, mip maps add memory in exchange for stable detail, and the real work is setting a budget per scene and checking the results on the headset. Get those three things right and most texture problems go away.

Why does texture memory matter so much on standalone VR?

A standalone headset shares one pool of memory between the operating system, the game, the engine and the GPU. Textures are usually the largest single consumer, so a few oversized images can push the whole scene over the limit.

When memory runs short, the symptoms are not always obvious. You may see slow streaming, sudden blurry textures, hitches when new areas load, or crashes on lower-memory devices. Treating textures as a budget you manage, instead of a folder of files you add to freely, is the first habit that pays off.

What is ASTC and why is it the common choice?

ASTC, short for Adaptive Scalable Texture Compression, is a block-based format that stores textures in a compressed form the GPU can read directly. On Quest, ASTC is the common standard for mobile-class GPUs, so most engines offer it as the target for Android-based builds.

The practical points:

  • ASTC gives you a range of block sizes. Smaller blocks keep more detail and use more memory. Larger blocks save memory and show more artifacts.
  • You can pick a different block size for different texture types. Colour textures often tolerate more compression than normal maps.
  • The format is a good default, but the right block size depends on the content. Test before you lock it in.
  • Check your engine's documentation for the current recommended settings and any notes about the target device, because defaults and supported options change over time.

Do not assume an old setting is still the best choice. Engines and hardware support move, so confirm the current advice before a release.

How do mip maps change memory and quality?

A mip map is a set of progressively smaller copies of a texture. The GPU uses the smaller copies for objects that are far away, which keeps the image sharp and stops shimmering as the viewer moves.

The cost is memory. A full mip chain adds roughly a third more memory than the base texture on its own. In VR this is usually worth paying for most surfaces, because shimmering and aliasing are very noticeable when the image is close to your eyes.

You can save memory with a few targeted choices:

  • Keep full mips on surfaces the player sees up close, such as the weapon, hands, interactables and the floor near the start point.
  • Drop the largest mip levels for background objects that never come close.
  • Avoid mips on UI and sprites that are always drawn at a fixed size, since they gain nothing from them.
  • Watch for textures that never reach the lowest mip levels. They may be larger than they need to be.

How do you set a texture memory budget?

A budget gives every scene a target, so you know when a new asset will cause trouble. A simple approach works well:

  1. Decide how much memory the textures can use in your worst scene, leaving room for the game, audio, the engine and the operating system.
  2. Divide that budget across categories, for example environment, characters, weapons, effects and UI.
  3. Set a maximum resolution for each category. Not every prop needs a large texture.
  4. Track the total in your build tools so an oversized texture shows up before it reaches a test device.

Use the platform's profiling tools on the headset to confirm the real memory use. Editor numbers can differ from device numbers, so the device is the only result that counts.

Which textures should use which settings?

Different texture types behave differently under compression, so one setting for everything rarely works best. A useful split looks like this:

Texture type Typical concern Starting point
Albedo or colour Banding in gradients Moderate compression, full mips on close surfaces
Normal maps Lost detail and odd shading Higher quality setting, check under lighting
Masks and roughness Errors in material response Test with the real shader
UI and text Blur and halo artifacts Often uncompressed or a lossless option
Pixel art Colour bleeding Usually no compression or a matched setting

Treat this table as a starting point, not a rule. Check each category in the headset under the lighting your game actually uses.

What are the most common texture mistakes?

Most texture problems on Quest come from a short list of habits:

  • Importing source images at full studio resolution and never reducing them.
  • Using one texture for many unrelated surfaces, which makes budgeting harder.
  • Forgetting that compression artifacts show up more under VR viewing distances.
  • Testing only in the editor, where memory and compression behave differently.
  • Leaving old, unused textures in the build.

A quick audit of the build for unused and oversized assets often recovers a lot of memory with no visible change.

How do you test textures on the headset?

Testing should happen on device, in the scenes that matter most. Walk through the heaviest area, look at surfaces up close, and check the places where textures meet at seams. Watch for shimmer as you turn your head, banding in gradients and blurry text in menus.

Note the memory use before and after each change, and keep the results. When a texture change makes a scene look worse, roll it back and try a different block size or resolution. Your goal is the smallest budget that still looks right to a player who is wearing the headset.

For the wider picture on moving content to standalone hardware, read what changes when you port a PC VR game to Quest. If your textures are the cause of hitches when new areas load, level streaming on standalone VR without hitches explains how memory and loading interact. And frame rate targets in VR and how to hold them covers why a memory spike can drag the frame time down even when the scene looks simple.

Good texture work is quiet. If players never notice the textures and the frame rate stays steady, the budget is doing its job.

Frequently asked questions

What texture compression format does Quest use?

ASTC is the common standard on Quest hardware, and most engines let you choose it as the target format for mobile builds. Always confirm the current recommendation in your engine's documentation before you lock in a setting.

Do mip maps use more memory?

Yes. A full mip chain adds roughly a third more memory than the base texture alone, but it keeps distant surfaces sharp and avoids shimmer, which matters a lot in VR.

How do I keep texture memory under control on Quest?

Set a memory budget for each scene, use the smallest resolution the player can actually see, compress everything the target supports, and check usage with the platform profiler on the headset.

Should every texture be compressed the same way?

No. Colour textures, normal maps and masks often need different settings, and some textures, such as UI or pixel art, may look better with a different format or no compression at all.