Virtual Texturing Settings Reference

Contains reference information for Project Settings, console commands, and Actor settings involved in Virtual Texturing.

Windows
MacOS
Linux

This page contains information about requirements, settings, and console commands for the Virtual Texturing system.

Streaming Virtual Texture Settings

The following settings and properties are used in setting up and working with Streaming Virtual Texturing.

Project Settings

When you have activated Enable virtual texture support in your Project, you'll have access to the following settings in the Project Settings window, under the Editor and Rendering categories:

PS_EnableVT.png

Rendering Settings

The available rendering settings are located under the Engine > Rendering > Virtual Textures category in the Project Settings window:

Properties

Description

Enable virtual texture support

When enabled, Textures can be streamed using the Virtual Texture system. Changing this setting requires restarting the Editor.

Enable virtual texture lightmaps

Lightmaps will be baked to Virtual Textures. This means lightmaps will have all the advantages (and disadvantages) of Streaming Virtual Textures. Compared to traditional lightmap textures atlas sheets, VT enables all lighting for a level to fit into a single texture, increasing batching efficiency. Lighting must be rebuilt for the project for this change to take effect. Changing this setting requires restarting the Editor.

Tile size

The size in pixels for Virtual Texture Tiles. All values not a power of 2 will be rounded to the next power of 2 value. Changing this setting requires restarting the Editor.

Tile border size

The size in pixels for Virtual Texture Tile Borders. All values not a power of 2 will be rounded to the next power of 2 value. Larger borders enable higher degree of anisotropic filtering but uses more disk/cache memory. Changing this setting requires restarting the Editor.

Feedback resolution factor

Lower factors will increase Virtual Texture Feedback Resolution, which increases CPU/GPU overhead. However, it may decrease streaming latency, especially if Materials use many Virtual Textures.

Enable Zlib compression

Enables use of Zlib to compress Virtual Textures. This makes VT textures smaller on disk I/O cost (number of reads or writes) but adds CPU cost to decompress. Changing this setting requires restarting the Editor.

Enable Crunch compression

Enables use of Crunch library to compress Virtual Textures. Crunch is an open-source compression library designed to further compress GPU block-compressed textures (using DXT/BC/ETC compression). It makes data much smaller than Zlib and, also, decreases CPU cost to decompress. However, compression is lossy so the image quality will be reduced. When enabled, Crunch will only be used for supported texture formats.The degree of lossy compression applied can be controlled per-VT Asset by changing the Lossy Compression Amount property in the Texture Editor. The default value will apply minimal compression, resulting in the highest quality and largest memory usage—which is still lower than Zlib. Lossy compression can also be disabled, or increased to reduce memory usage at the cost of quality. Changing this setting requires restarting the Editor.

Editor Settings

The avialable Editor settings are located under the Editor > Texture Import > Virtual Textures category in the Project Settings window:

Properties

Description

Auto Virtual Texturing Size

Automatically enable the Virtual Texture Streaming texture setting for textures larger than or equal to this size. This setting will not affect existing textures in the project.

Texture Editor

Use the Texture Editor to set and control lossy compression amounts and whether a Texture supports SVT.

Click image for full size.

Properties

Description

Compression

Lossy Compression Amount

How aggressive any relevant lossy compression should be applied. Use one of the available options from no lossy compression at all to the highest, giving the worst image quality with the smallest file size.

Texture

Virtual Texture Streaming

Whether this texture should be streamed in using Virtual Texturing. Note that this parameter is enabled by default for any textures imported that are equal to or larger than the Auto Virtual Texturing Size set in the Project Settings under Editor > Virtual Texturing.

Runtime Virtual Texture Settings

Use the following setting and properties to setup and work with Runtime Virtual Texturing in your Project.

Runtime Virtual Texture Asset

When opening a Runtime Virtual Texture Asset, use this window to set parameters for the generated RVT in your scene with any Runtime Virtual Texture Volume that is referencing it. You can create a RVT Asset from the Add New menu under Materials & Textures.

RVTAsset_Settings.png

Properties

Description

Details

Page Table Texture Memory (estimated)

Estimated page table texture memory that this Virtual Texture Asset is consuming.

Physical Texture Memory (estimated)

Estimated physical memory that this Virtual Texture Asset is consuming.

Size

Size of the virtual texture

The size of this RVT. This will be applied to the largest of either width or height from the associated Virtual Texture Volume. The size of the smaller axes will be chosen to match the aspect ratio of the Volume.

Currently, a maximum size of 256 KiTexels is supported, enabling for high texel density over large areas. In the future, larger versions could be supported.

Size of each virtual texture tile

The tile size used by this RVT. Virtual texture data is rendered and stored in tiles. Using a smaller tile size means that each tile is cheaper to generate but more tiles need to be generated. Using a larger tile size requires less memory to store the virtual texture page table. For large RVTs, an ideal setting would be that 1000 to 2000 tiles are required to cover the virtual width and height.

Border padding for each virtual texture tile

The number of padding texels used for each tile. A higher number has a small impact on memory and performance. A value of 0 will cause shading seasms from bilinear sampling artifacts at the tile edges. A value of 2 should resolve that and higher values are needed to enable anisotropic sampling.

Number of low mips to remove from the virtual texture

The number of low mips to remove from this RVT. Low mips cover the most area and, therefore, can be the most expensive to render. Removing them can improve performance. However, without the low mips available, mip shimmering artifcats can be introduced in the final render due to noisy or highly detailed textures with small details.

Layout

Virtual texture content

Choose what Material Attributes will be stored in this RVT:

  • Base Color: Stores only the base color. When compression is enabled, it is stored in BC1 format.

  • Base Color, Normal: Stores base color and normal. When compression is enabled, the base color is stored in BC1 format and the normal is stored as BC5.

  • Base Color, Normal, Roughness, Specular: Stores base color, normal, roughness, and specular. When compression is enabled, the base color is stored in BC1 format, and the other attributes are packed into BC3.

This setting needs to match settings in the associated Material Assets for the RVT to work correctly.

Enable BC texture compression

Enables texture compression of the data stored in the RVT. This reduces memory cost by a factor of 4 to 8 times, and improve sampling performance. Using uncompressed is only recommended for debugging and quality comparisons.

Debug

Enable virtual texture

Enable usage of the virtual texture. This option is intended only for debugging and visualization of the scene without virtual textures. It is not serialized.

Runtime Virtual Texture Volume

Use the Runtime Virtual Texture Volume to assign a Runtime Virtual Texture Asset to generate an RVT in your scene from Landscape Actors and scene Primitives that use the same RVT Asset.

RVT_VolumeSettings.png

Properties

Description

Virtual Texture

Virtual Texture

The Runtime Virtual Texture Asset to use.

Actor Properties

Use the following settings and properties for scene Primitives and Landscapes:

Primitives

Settings and properties specific to the Actors in your scene:

RVT_ActorSettings.png

Properties

Description

Virtual Texture

Render to Virtual Textures

An array of runtime virtual textures into which the mesh is rendered for the selected Actor. The Material also needs to be set up to output to a Virtual Texture.

Virtual Texture Pass Type

Render to the main pass based on the selected virtual texture settings:

  • Virtual Texture: If there is no valid virtual texture target, assets will not be rendered at all. Use this for items that it doesn't matter if they are removed if there is no virtual texture support enabled.

  • Virtual Texture OR Main Pass: If—and only if—there is no valid virtual texture, assets will be rendered in the main pass. Used this for items that must be rendered whether there is virtual texture support or not.

  • Virtual Texture AND Main Pass: Assets will be rendered to any valid target and the main pass. Use this for items that need to both read and write the virtual texture. For example, Landscape setups require this.

Virtual Texture LOD Bias

Bias to the level of detail (LOD) selected for rendering to Runtime Virtual Textures.

Virtual Texture Skip Mips

The number of lower Mips in the Runtime Virtual Texture to skip for rendering this primitive. Larger values reduce effective draw distance in the Runtime Virtual Texture. The culling method doesn't take into account primitive size or virtual texture size.

Virtual Texture Min Coverage

Set the minimum pixel coverage before culling from the Runtime Virtual Texture. Larger values reduce the effective draw distance in the Runtime Virtual Texture.

Landscape

Settings and properties specific to Landscape and Landscape Spline Actors in your scene:

RVT_LandscapeSettings.png

Properties

Description

Virtual Texture

Render to Virtual Textures

An array of runtime virtual textures into which the mesh is rendered for the selected Actor. The Material also needs to be set up to output to a Virtual Texture.

Virtual Texture Pass Type

Render to the main pass based on the selected virtual texture settings:

  • Virtual Texture: If there is no valid virtual texture target, assets will not be rendered at all. Use this for items that it doesn't matter if they are removed if there is no virtual texture support enabled.

  • Virtual Texture OR Main Pass: If—and only if—there is no valid virtual texture, assets will be rendered in the main pass. Used this for items that must be rendered whether there is virtual texture support or not.

  • Virtual Texture AND Main Pass: Assets will be rendered to any valid target and the main pass. Use this for items that need to both read and write the virtual texture. For example, Landscape setups require this.

Virtual Texture Num LODs

Number of mesh levels to use when rendering Landscape into a runtime virtual texture. Set this value only if the Material used to render the virtual texture requires interpolated vertex data, such as height. Higher values use more tessellated meshes, and are expensive when rendering the runtime virtual texture.

Virtual Texture LOD Bias

Bias to the level of detail (LOD) selected for rendering to the runtime virtual textures.

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback