Download

Launching map from editor has high res textures but drops quality on map change

I am launching my maps from the editor using the standalone game option.
When the level loads it has really lovely quality textures.

if i think bring down the console and type “travel map” where map is the map I already have loaded, I can see the quality of the textures are now lower.

I’ve been looking through the engine to see what could be doing this but I haven’t had any luck. Anyone have any ideas on what the problem may be?

If not, where can I look through the C++ code to check texture quality levels?

I’ve seen this too. There’s a streaming option on the various meshes that can effect the values of it. But from what I understand it, they do a pixel coverage value per mesh and will reduce the texture quality on the mesh based on that value, so I guess its some issue with that test? Have a look at “streaming” mesh values see if thats part of it.

thats the problem, “Streaming Distance Multiplier” has a default of 1.0, if I change this to 2.0 then the texture becomes high-res, and strangely, when I change it to 0.0, the texture becomes high-res also!
values like 0.9 or 1.1 are still low-res.

It is really unclear what this value is doing and why it is working like that.

Now, checking “Use Maximum Streaming Texel Ratio” fixes the problem also.

Now stepping through the ue4 engine code something looks strange:

in UStaticMesh::GetStreamingTextureFactor

when I looked at the problematic model

the MaxStreamingTextureFactor is so far from what is listed in the StreamingTextureFactors array!?
710cc60e588d279bc4f21756c1b229e76c21ba57.jpeg

here is an example of a potentially good mesh:
c4d279ea721e08931d501ff89807f6e146c51e88.jpeg
see how the MaxStreamingTextureFactor actually matches the max value in the StreamingTextureFactors array

the only difference is on this model that is broken I am using a really high resolution texture (2k) while our other textures are around (512) and we have started importing models with uniform scale of 100 so that could be another source of the problem.

OK, a guess here, is that something in the computation for the texture streaming (that “factor” I believe is the percentage of screen pixels it takes up as a ratio of some overall coverage value) has taken into account your object scales differently than they actually end up rendering. Like you’ve scaled up 10000 times and then divided by some large-ish value to get 1.0 instead of just using 1.0, then something in the pipeline has only used the first scaled value and hence its buggered :slight_smile:

So maybe re-export the mesh with your standardized scale values and see if that fixes the streaming?