Streaming Textures

Streaming Textures resource handling

Unreal Engine has special textures defined as “streaming”. You can read more about Unreal’s Texture Streaming feature here.

Textures that are marked as streaming in Unreal Engine essentially may have a different resolution quality available when Gameface receives a resource request for them.

The general use case for streaming textures is to save up memory when textures are being rendered on objects that are far away from the camera in a given scene. While this is a good approach for in-game objects, obviously it’s not ideal for UI elements that are supposed to be visible all the time on the screen and with the highest resolution available.

Therefore it is not advised to use streaming textures for your UI (when this can be avoided), but there may be cases where you would like to re-use the same asset for multiple purposes, or perhaps you may be using an in-world View (which may be further away from the player’s camera). For this reason Gameface has the option to handle resource requests for streaming textures in two different ways:

Immediate Streaming Textures loading

Using this option, any resource request for a streaming texture will result in the texture having its first mip (highest quality) force-loaded, resulting in your textures being visible the moment the UI is loaded.

Fluid Streaming Textures loading

When the option is disabled (default behavior) and Gameface receives resource requests for a streaming texture, it will requests the mip levels to be resident for a few seconds (non-blocking operation) and respond once the mips are available.

Plugin option

You can find the option controlling these behaviors in the Gameface options in the Unreal Editor: