Sampler Requires non-VirtualTexture

Hello,

I started a new project (several, actually) with Virtual Textures enabled (for nothing more than blending assets with the landscape.) On one project, I turned off converting textures to virtual textures on import, and left it on in the other project. Yet, no matter which project I am using, adding a Quixel asset via the bridge imports the high-res nanite geometry, and a very blurry (unusable) texture. If I inspect any of the Material Instances, I see the error “Sampler Requires non-VirtualTexture” for every texture bridge imported, and all are indeed virtual textures regardless if that was off in the settings or not. Never had this issue before, but now it is constant, and I have been using virtual textures in the past for blending. I can convert the textures back manually… but I can’t even find the error mentioned at all.

2 Likes

Update: Problem seems to have been fixed after a clean engine install (as clean projects still had issues. Now no clean projects have this issue. Deleted all my old projects, so can’t advise on whether it fixes it for those.)

1 Like

I have the same problem and I dont know how to fix it. I need help with this. All the textures of the surfaces imported from bridge are virtual textures and the software say me than albedo and anothers has an error because it need to use non virual textures.

Same here. But in my case it was clean UE5, none of the virtual texture setting where touched, so clean default UE. And after Bridge asked for an update I ran into this issue. Turning off Virtual Textures in the project settings helps, but the performance drops significantly as I already assembled a pretty massive project. My guess is it’s most likely failed megascans’ default shader.

2 Likes

It sounds like a mismatch where the Quixel master material (the sample parameters) is setup for non-virtual textures, while the texture being set in the material instance isn’t.

If it says “Sampler Requires non-VirtualTexture”, you need to open the texture and turn off “Virtual Texture Streaming”. (Virtual textures will say VT.) The Quixel master material is setup for one or the other.

In Project Settings, when you enable VT, there’s an option to automatically import textures as virtual which is on by default. So new Quixel textures come in virtual while the master material is set as non-virtual. It’ll look blurry and you’ll have errors in the material instance. You’ll want to turn this option off. (However, Quixel seems to ignore it.)

16 Likes

This is genius, and solved my problem. I had a Quixel material I added to the project early on, then later enabled virtual textures. I recently started experiencing lots of crashes whenever the shaders compiled… and lo and behold, this was the cause. UE didn’t like that I accidentally mixed virtual and non-virtual textures.

Ultimately, I had to edit the master material, convert the default textures to virtual textures, and then change the samples to Virtual …

Bam, textures work and no more crashes. Thank you!

Use this documentation and replace the Megascans Materials default textures with any with virtual textures enabled.

1 Like

I was having the texture marked with VT and was unable to change it with any other textures for the megascan asset. I’m using sequences for video render in UE5 with a heavy scene setup for cinematic render. I just right-clicked on the Albedo in the content browser and choose “Convert to Regular Texture” then it loads the high resolution of the texture without any blurry effect.

I’m using CC3 Character and that solve my problem. Thanks for sharing it!

thanks work fine now

I tried this but it ruined all my materials, so I recommend that if anyone tries this, do it with only one material and texture first to make sure it works for you.

Astaraa is exactly right. I’ve tried this with a new project using strata materials.

Very obnoxious issue. Bulk asset editing is my only real solution thus far.

As of Feb 2023 to accomplish this:
How to Convert VT into Regular Texture: For Megascan textures accidentally downloaded as VTs, but you want a regular texture. RC on Texture and in the Texture Actions list, choose: Convert to Regular Material. When you hover your cursor on this option it says : Converts this texture to regular 2D texture if it is a Virtual Texture.

Just had this. To fix it head over to your Material/MasterMaterial and look for the TextureSample giving you the error and change the Sampler Type from (for example) Color to Virtual Color or Normal to Virtual Color and so on.

This solution fixed the issue I was having with a VT streaming into the scene in very low res. All textures now appear as their native 4K resolution.

Specifically working with a tree asset made in SpeedTree9, on UE 5.2.1

1 Like

I thought I was going crazy after testing virtual textures in a project, then making a brand new project and seeing that somehow it was using VT textures without asking, even though VT support is OFF BY DEFAULT.

So how do you manage multiple projects on the same engine install, some with VT ON and some with VT OFF, without editing the master materials everytime you start a new project (and without clean engine install) ?

It works, but the strange thing is that in one version of the engine there is no such problem, while in a later version the same material requires converting textures.

To those still wondering about this, there appears to be either a bug or a not-so-user-friendly feature of the texture sampler in some or all versions of the engine.

This holds true for both the regular Texture Sampler and for the Texture Sampler Parameter nodes.

As a sidenote: When you have a TextureSampleParameter2D in the Material Graph, it is displayed being called just Param2D, which can itself be a bit confusing. You can see the full name of the node type by hovering over the node and pressing Ctrl+Alt.

When you click on either of these types of nodes, and try to browse through the details panel, you will find a dropdown box called Sampler Type. This box is a bit misleading, because it doesn’t actually show all the available sampler types for these nodes.

Instead of using this dropdown box, you need to go back to the Material Graph, and click the little “v” shaped arrow at the bottom of the node to expand it unless it is already expanded.

Now you will see a dropdown box there also named Sampler Type.
This is where you can switch between using the regular texture sampler types and the virtual texture sampler types.
In the details panel, only one or the other type will appear depending on what is set within the aforementioned hidden “v” area Sampler Type dropdown box of the Sampler nodes.

I hope this helps someone!