Search Unity

  1. Unity Asset Manager is now available in public beta. Try it out now and join the conversation here in the forums.
    Dismiss Notice

Texture Streaming Feedback

Discussion in 'Graphics Experimental Previews' started by DefiantDev_Chris, Jul 9, 2018.

  1. DefiantDev_Chris

    DefiantDev_Chris

    Joined:
    May 9, 2018
    Posts:
    11
    Hey,

    I am currently in the process of converting a game to use texture streaming. So far for the most part, its working incredibly, but I am having a few strange issues.

    1) Where exactly does the "UV Distribution Metric" come from? Is there any way to set it, or calculate it? We currently use an automatic LOD generation system based off Unity Autolod, but the generated metrics for LOD levels seem to always be 1 (as viewed in the inspector, and the mesh at runtime), which throws off the desired mip level calculations. There doesn't seem to be a way to set this on a mesh at creation, or import time.

    2) Sometimes for no reason, a texture has a very high desired mip level, and I am having trouble finding out exactly why. I wrote a texture streaming inspector for this, but the accessible debug information is really quite limited, and all I can really tell is that the pool is not full, but a rock in front of the camera, which usually needs a mip of 0, sometimes gets stuck loading a higher mip. I have had this happen to nearly every asset at one point or another. Making the pool massive or even forcing a negative bias on a streaming controller doesn't seem to solve it. I would love for some extra debug information to be exposed, but I'm not sure what is available "under the hood" that would help diagnose this (and more importantly, help our artist diagnose these issues in the future).

    3) I have noticed that consistently, objects with extreme scaling get incorrect mips loaded. I will try to produce a minimal repro for this. EDIT: Reported this. Its case 1058192.

    4) I have noticed that sometimes, the reported "loaded mip level" is incorrect. I will try to produce a minimal repro for this.

    EDIT: While I am here, something that would be extremely useful is to accurately (or roughly?) get the size of a texture that has been loaded in. It would be useful to visualize where texture pool memory is going :) Profiler.GetRuntimeMemorySizeLong does not return the correct size.

    Thanks a lot, I'm loving it so far
    Chris
     
    Last edited: Jul 9, 2018