Introduction

After loading a level, open Edit → Textures to launch the Texture Editor. It browses and edits the level's texture package under RENDERABLE (e.g. LEVEL_TEXTURES.ALL.PAK / LEVEL_TEXTURE_HEADERS.ALL.BIN).

Global textures used to sit in a separate, read-only source. They are now imported into the level automatically when it loads, which makes each level completely self-contained and means the textures it shares with the rest of the game can be edited like any other. There's no longer a source to switch between — everything the level uses is in one list.

The same window can open as a picker (with Select This Texture) from the Material Editor (Pick Texture… / Edit Texture…). Materials assigned this way show up on models in the Model Editor when textured preview is enabled.

Browsing & Preview

The left tree lists the level's textures. Use Search to filter by name. The preview title shows the texture name and format (for example MyTexture [DXT5]), and the Metadata panel gives width, height, depth, mips and size for whatever is on screen.

Under each preview is a mip level slider. A texture is stored as a chain of progressively smaller copies, and the top one tells you least about how it was authored — step down the chain to see what the game actually shows at distance, and to check that a texture you imported built a sensible chain.

Streamed & Persistent

A texture has two slots, shown as the Streamed and Persistent preview tabs. Empty slots show (none) and disable their tab.

  • Streamed — the full-resolution chain, loaded on demand.
  • Persistent — the copy that stays resident in memory, so it's meant to be the smaller of the two.

In the shipped data the persistent copy is never a separately compressed image — it's the streamed chain starting a few levels in. OpenCAGE reproduces that exactly when it writes one, so an imported texture is stored the way the game stores its own. Earlier versions wrote the same full-resolution data into both slots, which was wrong; persistent copies are now correctly smaller.

Cubemaps

Cubemaps can be viewed either as 2D faces — the six faces laid out flat — or in 3D, as an interactive sphere. When a cubemap has both slots filled, the Source dropdown beside the 3D view picks which of the two the sphere is built from.

Import & Export

Supported Formats

Import no longer requires a DDS in exactly the right format. OpenCAGE reads DDS, PNG, JPEG, TGA, BMP, TIFF, Radiance HDR and ASTC, and converts to whichever of the game's formats you pick.

Two encoders do the work, both carried inside OpenCAGE and unpacked when first needed — Microsoft's texconv for the block and uncompressed formats the PC game uses, and Arm's astcenc for ASTC. A DDS that's already in the format you asked for is passed straight through without running either, which is the common case when you export from a texture tool.

ASTC is offered on mobile builds only. Nothing in the PC data uses it, and offering it elsewhere would just be a way to make a texture the game can't load. See Multiple Game Installs for working with the iOS / Android / Switch ports.

Import & Replace

  • Import New — adds a new texture. You choose its name and any folders it should sit in as part of the import, with the clash check running as you type.
  • Replace Selected — overwrites the selected texture with a new image.

Either way, an options dialog asks what to do with the image before anything is written:

  • Format — which of the game's formats to store it in. When replacing, this defaults to whatever the texture already is, so bringing a texture back in leaves the slot as the game shipped it. A brand new texture defaults to BC7, which is what seven of every ten textures in the game already use.
  • Mip levels — how much of a mip chain to build, from the top level alone up to as many as the image allows.
  • Persistent copy — whether to keep one, and how many levels down the chain it should start.

Export & Delete

  • Export Selected — write one texture as DDS, PNG, or JPG.
  • Export All — pick a folder, choose Export all as (DDS / PNG / JPG), then export the whole list. The folder opens when finished.
  • Delete Selected — removes a texture after confirmation.

ASTC textures export through the same route, so a mobile build's textures come out as ordinary images rather than as something only the game can read.

Flags

State flags and Usage flags checkboxes update live in memory (for example cube map, volume, post processing, lens flare). Usage options are power-of-two style flags from the game's texture usage enum.

Saving

The Texture Editor has no separate Save button. Persist level texture changes with File → Save Level (Ctrl+S), which writes LEVEL_TEXTURES.ALL.PAK / LEVEL_TEXTURE_HEADERS.ALL.BIN (or the compressed .PAK.FZIP variant) under the level's RENDERABLE folder.

Saving closes the game if it's running so install files aren't locked. Because global textures are imported into the level on load, edits to them are written into the level's own package — the game's global texture pak isn't modified, and the change applies to the level you're editing rather than to every level at once.

Related Tools

  • Material Editor — assign textures to material samplers via Pick Texture… / Edit Texture…
  • Model Editor — textured preview and export that depend on materials and their samplers
  • Material Mapping Editor — From→To remaps that swap which materials (and textures) apply at instance time