In brief
- RVT generates textures on the GPU at runtime and can be used for procedural or layered materials.
- SVT loads visible portions of disk-based textures into GPU memory as tiles.
- Texture Sample nodes in materials using SVT textures must use an appropriate Virtual sampler type.
- Virtual texturing costs can be inspected with the `stat virtualtexturing` and `stat virtualtexturememory` commands.
Epic Games’ official Unreal Engine documentation describes virtual texturing as a way to handle large textures at runtime with lower and more consistent memory usage. The system includes two methods: Runtime Virtual Texturing (RVT) and Streaming Virtual Texturing (SVT). This guide explains where each method can be used in architectural visualization and real-time scenes, how to connect SVT textures to materials, and how to check performance. The source documentation does not specify a particular Unreal Engine version to which the information applies.
1. RVT or SVT? Choosing the right method
With RVT, texture data is generated by the GPU at runtime. Epic’s documentation describes this method as suitable for procedural textures, layered materials, and complex material use on landscapes. Landscape Spline workflows, using decals on meshes, and generally blending landscapes with objects are also listed as potential RVT use cases. This does not mean that decals are directly blended with landscapes or objects.
SVT uses textures prepared on disk. The system divides texture mip levels into fixed-size tiles; the GPU determines which parts are needed for the pixels visible on screen, and those tiles are loaded into a cache in GPU memory. This means that with high-resolution textures, only the required areas are handled rather than loading the entire texture, including parts that are not visible. SVT is suitable for data that takes time to produce, such as lightmaps and large artist-authored textures.
| Method | Data flow | Use cases listed in the documentation |
|---|---|---|
| RVT | Texture data is generated on the GPU at runtime. | Procedural or layered materials, complex landscape materials |
| SVT | Texture data is loaded from disk; required tiles are brought into memory. | Lightmaps and large, detailed textures |
2. Converting SVT textures and materials
When using SVT, Virtual Texture Streaming must be enabled on the Texture Asset. Texture Sample nodes in materials that sample the texture must also use an appropriate Virtual sampler type. The conversion option in the Content Browser can add both the selected textures and materials that reference them to the conversion list.
In the Content Browser, select the Texture Asset to convert to SVT.
Right-click the asset and choose
Convert to Virtual Texture.In the conversion window, review the listed textures and the materials that reference them.
Click
Okto start the conversion.Afterward, verify that the Texture Sample nodes in the relevant materials use the correct Virtual sampler type.
You can also convert a texture manually. Open the Texture Asset and enable Virtual Texture Streaming in the Texture section of the Details panel. After this, existing materials that use the texture may become invalid. In the relevant materials, change the Texture Sample node to an appropriate Virtual sampler type. The documentation’s example uses Virtual Color for a virtual color texture; the Color sampler type is not a valid match.
When a virtual texture is added to a material graph, Unreal Engine automatically assigns an appropriate Virtual sampler type. However, the sampler type in the base material matters when creating a Texture Sample Parameter for use in Material Instances: child samples use the type set in the base material. A virtual texture cannot be assigned to a base material parameter slot that does not use a Virtual type.
3. UDIM and virtual texture lightmaps
Unreal Engine can import images that follow the UDIM naming convention as a single Virtual Texture Asset. Files must have the same base name and a four-digit coordinate number. The format shown in the documentation is:
BaseName.####.[Support Image Format]For example, MyTexture.1001.png prompts Unreal Engine to look for other images with the same base name and different coordinate numbers. UDIM images can have different resolutions. In the example given in the source, two 2048x2048 images and two 128x128 images in a 2x2 layout are sampled as a single virtual texture. According to the source description, the smaller images filling a larger area in this layout does not increase disk or runtime memory usage.
To enable virtual texture lightmaps, open Engine › Rendering in Project Settings and select Enable virtual texture lightmaps. Epic says this feature can improve lightmap build quality and streaming performance. The documentation also describes the r.IncludeNonVirtualTexturedLightmaps and r.VT.EnableLossyCompressLightmaps console variables. The latter enables lossy compression for virtual texture lightmaps; the documentation notes that this can reduce lightmap texture quality.
4. Measuring performance and common mistakes
Virtual texture sampling is more expensive than traditional texture sampling. Each Virtual Texture sample in the material graph creates a lookup. Stacks for samples that use the same UVs and Sampler Source can be combined; up to 8 samples sharing the same conditions can be grouped into one stack. If the UVs differ, stacks may remain separate, resulting in additional texture accesses.
To inspect the cost in a scene, open the console and run:
stat virtualtexturingThis command displays the scene cost of virtual texturing in milliseconds, along with counters related to page tables. To view memory counters, run:
stat virtualtexturememoryTo show the mip visualization grid on materials using SVT:
r.VT.Borders 1Turn off the grid when you are done:
r.VT.Borders 0Common mistakes
Not correcting the sampler type: Manual conversion can invalidate materials. Check that Texture Sample nodes use the appropriate Virtual type.
Assuming virtual textures are free: Memory benefits do not eliminate the cost of sampling. Measure the scene with the statistics commands.
Overlooking different UV usage: Stacks for samples using different UVs may not be combined, which can increase material costs.
Ignoring visual artifacts: With noisy or highly detailed textures, low-resolution mip limitations can cause aliasing or Moiré effects. SVT’s reactive loading can also mean that some tiles arrive after the camera moves, causing visible pop-in.
For architecture, interiors, and archviz, RVT may be worth considering for teams working with procedural landscapes, layered surfaces, and landscape-to-object transitions. SVT can help manage memory in scenes with large textures, UDIM sets, or lightmaps. Before adding either method to a workflow, check material compatibility, GPU costs, and tile loading during camera movement. Since the documentation does not specify a version, results should also be verified in the Unreal Engine version being used.
Sources
2 sourcesSource texts are not republished; short quotes are marked, everything else is our own summary and commentary.
For architecture and visualization offices in Turkey, virtual texturing can help manage memory in scenes with large texture sets and landscape-heavy content. However, this does not mean that rendering will automatically be faster in every project; the added cost of virtual texture sampling and the impact of using different UVs must also be considered.
The safest approach is to test the method in a representative scene before applying it across an entire project. Check material compatibility after conversion, GPU memory counters, image quality in fine details, and tile loading during camera movement. Verifying behavior in the Unreal Engine version being used should also be part of the team’s checklist.
Frequently asked questions
What is the difference between RVT and SVT in Unreal Engine?
RVT generates texture data on the GPU at runtime. SVT loads visible portions of textures on disk as tiles.
How do you use SVT textures in materials?
Virtual Texture Streaming must be enabled on the texture, and Texture Sample nodes in the material must use an appropriate Virtual sampler type. The conversion menu lists both the textures and the materials that reference them.
How do you measure virtual texturing performance in Unreal Engine?
`stat virtualtexturing` displays scene costs and counters related to page tables. `stat virtualtexturememory` displays virtual texture memory counters for the scene.



