PANORA|make 4.0 Docs
YouTube Tutorials
  • Introduction
    • Licenses Differences
    • 🎬 Installation
  • 🎬 Starting a new Instance
  • Interface Overview
    • 🎬 Builder Interface
      • Building Materials
      • Building Masks
        • 🎬 Filters & Noise
        • 🎬 Blending Filters & Linking Masks
        • Manual Sub-Layer Drawing
      • 🎬 Using Effects
      • 🎬Building Grass, Physical Materials & Adjustements
      • Global Features & Settings
      • 🎬 LOOKDEV View
      • Console Area
    • Builder Settings
    • Exporting/Importing Presets & Materials
    • 🎬 sRGB/RAW/Normal Color Space management
  • Setting Up Instance
    • Biomes Workflow
    • Adding Displacement
    • Making Holes in the Landscape
    • 🎬 Landscape Caching for better Performance
    • Using a Satellite Material
    • Using a Fresnel effect on the Instance
  • SCALABILITY AND CROSS-PLATFORM DEVELOPMENT
    • Performance Tips
    • Scalability Options
    • Unified Cross-Platform Development
      • ES3.1 Limitations Breakdown & Best Pratices
      • All Switches & Features for ES3.1
      • Samplers Cost Table
  • Current state
    • Frequently Asked Questions - Solving Issues
    • Known issues
    • Changelog & Releases
Powered by GitBook
On this page
  • 🎬 Creating the Runtime Virtual Textures
  • Applying the Virtual Textures
  • Exclude Layers from caching
  1. Setting Up Instance

🎬 Landscape Caching for better Performance

How to setup and use RVTs to improve performance

PreviousMaking Holes in the LandscapeNextUsing a Satellite Material

Last updated 3 months ago

🎬

Virtual Texture Support needs to be enabled in your project.

See for info on how to set them up.

First, Create the Runtime Virtual Textures that will be used. For Caching, at least the Color VT is mandatory for it to work, other additional VTs may not be needed depending on your needs.

Open the principal color VT and set its "Virtual Texture content" to "Base Color, Specular, Roughness, Normal". Recommended default values for the Sizes are 12-2-2.

If you want to use VTs for World Height, open the one for it and set it to "World Height". Recommended default values for the Sizes are 8-2-2.

If you want to use VTs for Nanite Displacement, open the one for it and set it to "Displacement". Recommended default values for the Sizes are 10-2-2.

Then, place Runtime Virtual Texture Volumes for each of the VTs in your world. In the Details panel, look for "Virtual Texture" and select the one you need, then click Set Bounds.

Do that for each of the volumes you need.

Then, click on your Landscape, and add the Virtual Textures needed in the "Draw in Virtual Textures" zone of its details as the screen below shows.

If the Landscape is using World Partition you'll have to do this with the Landscape and all its Streaming Proxies selected (if on 5.1 or 5.2).

On 5.3+ you don't need to, you can set these values on the main Landscape and the proxies will follow it.

Applying the Virtual Textures

Finally, In the Builder interface, enable the use of Virtual Texturing caching in the Global options.

You can click the wand button to automatically select the Landscape's Virtual Texture, or select it manually by clicking its thumbnail.

Done ! Now your Instance can use Virtual Texture Caching to improve itsperformance !

Exclude Layers from caching

Caching works by setting the Instance fully static. But, some features do not work when cached. So, you can tick the "Exclude from Caching" option in the Material settings to keep a Sub-Layer uncached.

These features cannot work when cached :

  • Parallax Occlusion Mapping

However, other material features are taken into the caching when enabled and are as such free :

  • Triplanar Mapping

  • UV Tiling Variance

Uncaching a Layer has a great impact on shader complexity.

Even though only one Sub-Layer is uncached out of four for example, it's going to have something like more than half of the uncached shader complexity.

Still, it's better than keeping it uncached. Depending on your use case you may need to uncache some layers (Rocks far away for example.)

Uncaching the second Sub-Layer in our case for example gives us this shader complexity. As you can see, it's better than uncached but still negatively impacts the complexity.

Creating the Runtime Virtual Textures
Installation
<- Color | Displacement for Nanite (5.4+) | Height -> Good base values.
Correctly set VT Volume.
End result.
The second "Disp" slot shows only if Nanite Tessellation is available and used.
Make sure to select the good Virtual Texture if you select it manually.
Cached
Uncached
Partially uncached (one layer out of 3 is excluded. No extra features like UV Variance or distance-based are used.)