In brief
- RVT generates texture data on the GPU at runtime and caches shading information across large areas.
- Setup requires an RVT Asset, an RVT Volume placed in the scene, suitable materials, and components that write to the RVT.
- Landscape, Landscape Splines, and static meshes are among the components described as suitable for this workflow.
- Because RVT content is not fully updated every frame, animated and skeletal meshes are poor candidates.
What you’ll learn in this guide
Runtime Virtual Texture (RVT) is an Unreal Engine technique that generates shading data on the GPU at runtime and caches it across large surfaces. It can be used to bring terrain materials, splines, and some scene objects together under a consistent surface look. Epic’s documentation describes RVT as a good fit for Landscape shading, decal-like materials, and splines that conform to terrain.
In this guide, you’ll set up the relationship between an RVT Asset and a Volume, see how materials write and sample data, and identify which scene components work well with this workflow. The goal isn’t to add a virtual texture to a scene at random, but to plan the writing and sampling roles, volume bounds, and component choices together.
Requirements and compatibility
This workflow depends on virtual texturing being available in your Unreal Engine project. Epic’s general documentation distinguishes between two methods: Runtime Virtual Texturing generates data on the GPU at runtime, while Streaming Virtual Texturing loads data prepared on disk. RVT is described as suitable for procedural or layered materials and terrain blends, while Streaming Virtual Texturing is intended for prebuilt content such as lightmaps or large, detailed artist-created textures.
The source guides don’t specify a minimum Unreal Engine version or user account requirement. So don’t assume a specific minimum version; verify that virtual texturing is supported in your version and check the relevant project settings. The documentation also notes that an older material type available in UE 4.23 was converted to a different type in 4.24. Treat this as a compatibility note you may encounter when working with older projects, not as a current version requirement.
Before you begin, identify the terrain or surface, the materials that will write to the RVT, and the materials that will read from it. The RVT Asset’s material type affects which data is stored: for example, an option that stores only Base Color is not the same as one that stores color, normals, and surface properties.
Step-by-step RVT setup
Create an RVT Asset. Open the Add New menu in the Content Browser and select Runtime Virtual Texture under Materials & Textures. This Asset carries the configuration that connects the RVT Volume, materials, and scene components. Open the Asset and set its size, tile size, and supported Material Attributes type to suit your project.
Add an RVT Volume to the scene. Place a Runtime Virtual Texture Volume in the scene from the Modes panel, then assign the Asset you created to the Volume. The Volume must encompass the objects that will write to the RVT. In the Details panel, use the Transform from Bounds options to select an Actor as the source and use Set Bounds to position and scale the Volume to match that Actor’s bounds. Check that it also covers any components that will write to it.
Prepare materials for writing and sampling. Materials on components that write to the RVT must use the Virtual Texture Material Domain or be set up with the appropriate RVT material expressions. If a material needs to work in the regular view and also write data to and sample data from the RVT, use the Runtime Virtual Texture Output expression. Connect your existing material logic to this expression. To read data from the RVT, use the Runtime Virtual Texture Sample expression.
If you need to change the RVT Asset through a Material Instance, you can use the Runtime Virtual Texture Sample Parameter expression. The material type of the assigned Asset must match the type specified in the expression’s Details section. If the types don’t match, review the sampling setup; Fix Material Usage in the Asset menu can help resolve type mismatches in materials and functions that use this Asset.
Assign the RVT to scene components. Add the relevant Asset to the Render to Virtual Textures field in the Details panel of the component that will write to the RVT. This assignment alone isn’t enough to write data: the RVT Asset must also be assigned to a Volume in the scene, and the component’s material must be set up correctly. Also confirm that objects writing to or sampling from the RVT remain within the Volume bounds.
Check the result and consider an alternative path. Test the RVT material under the conditions your project targets. Epic’s sample Landscape material uses a fallback to traditional Landscape rendering when virtual texturing isn’t supported. You can also use a Virtual Texture Feature Switch in your material logic to prepare an alternative for unsupported cases.
Common mistakes and checklist
Leaving the Volume bounds too small: If components that write or sample fall outside the Volume, the RVT won’t behave as expected. Check that the Volume covers not just the terrain but all relevant components.
Mismatching material types: The Sample Parameter expression and the Asset’s material type must match. If you change the Asset type, review the materials that use it.
Targeting moving or animated objects: RVT is a shading cache, so its content isn’t fully updated every frame. Skeletal and animated meshes are therefore poor candidates; prefer static components.
Storing more data than you need: More comprehensive material types can store more data. YCoCg-based color storage can help reduce color shifts and banding in flat color gradients; however, as the source notes, it adds 25% more memory and extra performance costs for sampling and decoding.
Confusing RVT with Streaming Virtual Texturing: If you need terrain and layered material data generated at runtime, consider RVT. For large textures or lightmaps prepared on disk, consider Streaming Virtual Texturing.
Impact on architecture, interiors, and archviz workflows
In architectural visualization scenes with terrain, RVT can help Landscape materials blend visually with splines and objects. Roads that conform to terrain, landscape elements, and surface transitions align with the use cases covered by this method. Static meshes and instanced static meshes are also among the suitable candidates. By contrast, RVT shouldn’t be treated as the default solution for moving, skeletal, or animated objects.
In practice, first validate the Asset, Volume, and material workflow on a small part of the scene, then expand its scope. Keep an eye on memory and sampling costs, especially when choosing a material type. If the target platform doesn’t support virtual texturing, check whether you need an alternative material path. This approach helps you plan material and component settings more deliberately in the project file, but it doesn’t guarantee a specific performance improvement or platform compatibility.
Next steps
For your first test, start with a Landscape or similar surface and use a single RVT Asset and Volume to validate writing and sampling behavior. Then add components such as splines or static meshes one at a time, tracking which material writes data and which one reads it. If the visual result is off, first check the material type and Volume bounds, then the component’s Render to Virtual Textures assignment.
If your scene doesn’t need RVT, don’t change your workflow just to use virtual texturing. If you need to load large textures from disk or use a lightmap workflow, look into Streaming Virtual Texturing separately. The two methods serve different purposes; choose based on how the data is generated and used in the scene.
Sources and license
This guide was adapted into Turkish using Epic Games’ Runtime Virtual Texturing and Virtual Texturing documentation. Both sources were provided as license=free: the Runtime Virtual Texturing guide and the Virtual Texturing guide.
Sources
2 sourcesSource texts are not republished; short quotes are marked, everything else is our own summary and commentary.
For architecture and visualization teams in Turkey, RVT’s most practical benefit is that it lets them handle material transitions among terrain, splines, and static scene elements within a single workflow. Especially in large environment scenes, deciding at the outset which components will write and which will sample can make later revisions easier.
That said, RVT isn’t a feature that needs to be added to every scene. Offices and students should evaluate the memory cost of the material type and support on the target platform in a test scene. Keep in mind that animated objects aren’t suitable candidates and that some color storage options add extra costs; the decision should be based on visual needs and project hardware.
Frequently asked questions
What is Unreal Engine Runtime Virtual Texture used for?
RVT generates shading data on the GPU at runtime and caches it across large areas. It can help create visual consistency between terrain materials, splines, and objects.
What components are required for an RVT setup?
You need an RVT Asset, an RVT Volume placed in the scene and assigned to the Asset, suitable materials, and components with the RVT Asset selected in the Render to Virtual Textures field.
Are animated meshes suitable for Runtime Virtual Texture?
According to Epic’s documentation, RVT content isn’t fully updated every frame, so skeletal and animated meshes are poor candidates. Static components are a better fit.



