Certain Textures are Blurry in Shipping Build, Not in PIE

Hi there,

I’ve recently gotten to the point in my game where I have to start making “shipping builds” for closed beta testing. However, certain materials are really low res and blurry in the standalone game, where as they look fine in PIE. In my editor, I had to bump the texture streaming pool up to load all the textures right and avoid this issue. I tried making a setting in the menus for my game that lets you up the texture streaming pool, but even at 8192MB, it still renders poorly with some assets. Again, setting this as low as 2000MB in PIE and it works fine to get rid of the blurry textures.

Is there something I’m missing regarding how to increase the texture streaming poolsize in a shipping build vs PIE or is this a bug? It seems to really only affect vegetation, but since the game is in a jungle, the majority of assets are plants/rocks. I never noticed this before in 4.11 or 4.12.

Thanks,

Adam

Hello AdamMacDon,

It sounds like you could be running into this issue after modifying the default texture streaming settings. If that is the case, you will want to make sure you are not running out of texture memory. If you haven’t looking into it already, I highly recommend using our Texture Streaming documentation.

There is a section called ‘Optimizing and Debugging Texture Streaming’ which is the area that is going to be most helpful to you. Use the suggestions there to figure out what could be occurring in your project. You mention it is only foliage/vegetation that seems to be experiencing this issue, so perhaps that texture group utilizing too much of your texture memory pool.

Let me know if you have further questions or need additional assistance.

Thank you,

Andrew Hurley

Hey Andrew,

I read over that documentation several times over the past year, but I have yet to find how it allows you to increase your texture memory pool in a shipping build. I can do it in PIE, but it seems to only have 1GB in a shipped build, which is a waste since I have 4GB of VRAM in my 970, and it’s not even that nice of a GPU, some have double that. I made a slider in my visual settings that allows users to set the r.Streaming.PoolSize variable from 512MB to 8192MB, it seems to have no effect in the shipping build, but works fine in PIE.

Also another interesting thing is how this only happened in 4.13, in 4.12 and 4.11 I had the same amount of texture pool usage (around 1.5GB), and it never happened. I can’t say for sure in 4.10-4.5, as I had less detail in the world at that point.

For now I found a temporary fix by disabling mipmaps for all vegetation materials. Looks a little pixelated if AA is turned off, but it’s better than being blurry and also it makes the tree canopy look more full at a distance.

Thanks,

Adam

You need to specify the texture pool size and those associated settings within your .ini files. For developing games, the [your_game]\Config\DefaultEngine.ini file also contains a mirror set of the base properties in the Engine\Config\ folder and should be the copy that is normally modified for your game’s specific settings.

Note that there are independent sets of TextureGroup entries for the Unreal Editor and in-game. These two sets are respectively located in the [SystemSettingsEditor] and [SystemSettings] sections in the config files. This is where you will specify the Texture Pool Size and other config variables.

Thanks for the quick reply, that should help, although the mipmap disabling seems to have fixed it for now, it’s good to know what config to use for a shipped game.

for anyone else finding this search and reading this, i found the replies still need more granular info, if like myself found epic ‘stock replies’ unhelpful;
1 you can change the texture streaming pool in alevel blue print directly, ie use the blueprint node for a console command and use the pool size command you would normally use in the ini, but via blueprints. the reason do to this enables a main menu option for player to set ie for his vram sizes, and this can vary per level. thus ie also for varying the streaming pool you need on a level by level basis.
2 Andrew really should have spotted and mentioned, - when playing in PIE your textures are already loaded and cached but as per above, when running in packaged and built version they are loading from disk; and along with mip streaming etc. Too complex to describe here but there is mip streaming and various loading systems to bring textures in while playing, ie in PIE they are already loaded, in packaged they’re loading in, and trying to be there’ just in time’.
to get vitally important textures not to look blurry, you can disable mip streaming on important textures, and or force earlier asset launch, and or set to ‘high detail’ via the lod groups.

I had exactly the same issue. I disabled “Texture Streaming” in the “Rendering” Settings in “Project Settings”. When disabled , it seems to match the functionality of “Texture Groups” the Texture content and I get the same output as in “PIE” when in shipping. And mipmaps work correctly, so I’m assuming the “Streaming” part of that setting is meant for loading not Mip streaming, or maybe a different texture streaming algorithm than the mip magnafication process