Version: 2020.2
Streaming Virtual Texturing
How Streaming Virtual Texturing works

Streaming Virtual Texturing requirements and compatibility

Unity version: 2020.1.0b9 or newer

Render pipeline support

In Unity 2020.1, with High Definition Render Pipeline versions 9.0.0-preview and newer, you can use Streaming Virtual Texturing (SVT) in ShadersA small script that contains the mathematical calculations and algorithms for calculating the Color of each pixel rendered, based on the lighting input and the Material configuration. More info
See in Glossary
you create with Shader Graph.

System requirements

GPU requirements

  • GPU compute
  • Texture2DArrays
  • AsyncReadBack

Supported platforms

  • Windows
  • Mac
  • Linux
  • Playstation 4
  • Xbox One

Supported graphics APIs

  • DirectX 11
  • DirectX 12
  • Metal
  • Vulkan

Texture compatibility

  • SVT is built on top of Unity Texture2D. SVT textures go through the same importer, which limits the maximum texture size. Currently, SVT doesn’t support textures larger than 16K x 16K. It also does not support UDIM Textures, or merging tiled image files into one large texture.

  • SVT doesn’t support all texture graphics formats. The supported formats are:

    • GraphicsFormat::kFormatRGBA_DXT1_SRGB
    • GraphicsFormat::kFormatRGBA_DXT1_UNorm
    • GraphicsFormat::kFormatRGBA_DXT3_SRGB
    • GraphicsFormat::kFormatRGBA_DXT3_UNorm
    • GraphicsFormat::kFormatR_BC4_UNorm
    • GraphicsFormat::kFormatRG_BC5_UNorm
    • GraphicsFormat::kFormatRGB_BC6H_SFloat
    • GraphicsFormat::kFormatRGB_BC6H_UFloat
    • GraphicsFormat::kFormatRGBA_BC7_SRGB
    • GraphicsFormat::kFormatRGBA_BC7_UNorm
    • GraphicsFormat::kFormatR8_SRGB
    • GraphicsFormat::kFormatR8_UNorm
    • GraphicsFormat::kFormatR8G8_SRGB
    • GraphicsFormat::kFormatR8G8_UNorm
    • GraphicsFormat::kFormatR8G8B8_SRGB
    • GraphicsFormat::kFormatR8G8B8_UNorm
    • GraphicsFormat::kFormatR8G8B8A8_SRGB
    • GraphicsFormat::kFormatR8G8B8A8_UNorm
    • GraphicsFormat::kFormatR16_SFloat
    • GraphicsFormat::kFormatR16_UNorm
    • GraphicsFormat::kFormatR16G16_SFloat
    • GraphicsFormat::kFormatR16G16_UNorm
    • GraphicsFormat::kFormatR16G16B16A16_SFloat
    • GraphicsFormat::kFormatR16G16B16A16_UNorm
    • GraphicsFormat::kFormatR32_SFloat
    • GraphicsFormat::kFormatR32G32_SFloat
    • GraphicsFormat::kFormatR32G32B32A32_SFloat
    • GraphicsFormat::kFormatA2B10G10R10_UNormPack32
  • SVT does not support the following:

    • Mirror wrap mode.
    • Per-axis clamping (for example, repeating horizontally while clamping vertically).
    • Textures with resolutions that aren’t a power of two.
  • Textures in SVT don’t have mipmaps smaller than the tile size (128 x 128 pixels). SVT clamps the sampling to this mip, so you can see aliasing for certain content at a distance.

  • SVT supports streaming from disk only in the Player, and not in the Editor.

  • The maximum anisotropic filtering level is 8, because each tile has an 8-pixel border.

  • You cannot set textures that are part of a stack dynamically in the Player. In the Player, you cannot call Material.SetTexture or Renderer.SetPropertyBlock to modify the Texture Stack.

Unity feature compatibility

  • SVT does not support the following:

  • The aspect ratiosThe relationship of an image’s proportional dimensions, such as its width and height.
    See in Glossary
    of stack layers must match.

Streaming Virtual Texturing
How Streaming Virtual Texturing works