Rise of the Triad

Rise of the Triad

Ver estadísticas:
Rezulux 2 AGO 2013 a las 15:38
Texture Streaming and YOU!

Do you have an awesome computer that runs ROTT fine, but are still plagued with awful texture streaming issues, and don't know how to fix them? Look no further! Except, look a little further, because we're going to explain what texture streaming is, why it's good, and how you can change it!

What is "texture streaming?"
Texture streaming is the process the engine uses to not have to load all of the game's necessary textures at once upon the load of a level. This decreases load times significantly, for a tradeoff of not having all of the game's textures loaded at high-res immediately upon the start of a level. While it helps a lot, it can also end up making the game look very ugly at the load of every level, or in multiplayer's case, after each death.

Why not turn texture streaming off?
You could very well turn texture streaming off entirely, it would allow you the maximum quality textures all of the time, and the game would look perfect. The problem being, it would cause quite the performance hit, and your load times would extend drastically. Unless you have an absolutely top-of-the-line computer, it is highly recommended to keep texture streaming enabled.

I didn't actually read the rest of the post, I just want to know how to make this texture streaming thing work better!
Now, hold your horses there. There's a few options within the ini files that we need to go over first, options that could end up breaking your game.

This is what my [TextureStreaming] section of ROTTEngine.ini looks like, after the edits:
[TextureStreaming] MinTextureResidentMipCount=7 PoolSize=960 MemoryMargin=20 MemoryLoss=0 HysteresisLimit=30
FudgeFactorIncreaseRateOfChange=0.5 FudgeFactorDecreaseRateOfChange=-0.1 MinRequestedMipsToConsider=11 MinTimeToGuaranteeMinMipCount=0
UseTextureFileCache=TRUE LoadMapTimeLimit=10.0 LightmapStreamingFactor=0.04 ShadowmapStreamingFactor=0.04 MaxLightmapRadius=2000.0 AllowStreamingLightmaps=True TextureFileCacheBulkDataAlignment=1 UsePriorityStreaming=False bAllowSwitchingStreamingSystem=False UseDynamicStreaming=True bEnableAsyncDefrag=False bEnableAsyncReallocation=False MaxDefragRelocations=256 MaxDefragDownShift=128 BoostPlayerTextures=3.0 TemporalAAMemoryReserve=4.0
It should look very similar to yours, with a few minor differences, which we will go over!

Explanation of the changed settings
I am not going to explain all of the settings I changed, simply the most important ones. For a comprehensive list of settings, their minimum and maximum values, as well as a concise description of the setting, this page lists most of the available variables: http://www.tribes0.com/tribesascend_ini.htm

The first and probably most important setting here is PoolSize. This is the size of the texture pool, in megabytes, which I assume stores in RAM. The default is 160, which isn't very large at all, so I set it to 960, which is six times the default, and has helped a lot. You will want to set this according to how much RAM you have in your system, I have 8GB, to help you make an educated decision.

The next batch of settings are DropMipLevelsLimit, StopIncreasingLimit, StopStreamingLimit, and MinFudgeFactor. These work in tandem to increase the efficiency of texture streaming, and as such should be proportionately edited. DropMipLevelsLimit is the limit at which the game will start increasing the fudge factor, which in this case is not the amount of chocolate the game can process, but instead how much it will drop mipmap levels. StopIncreasingLimit and StopStreamingLimit are the limit at which the game doesn't allow any higher levels of mipmaps and mipmap changes, respectively. Finally, MinFudgeFactor is the smallest level of mipmap change the game will allow.

And last but not least, MinTimeToGuaranteeMinMipCount and MaxTimeToGuaranteeMinMipCount. These tell the game what range of time it should take the engine to get to the highest texture level. Remember, a smaller mipmap is a higher quality texture, so you want the game to get to this point as quick as possible. I'm not sure if the max setting really changes anything, but try not to set it too low. The min time setting should be set to zero, because if your computer can easily load the best textures instantly, why shouldn't it be able to?

That's all folks!
Thanks for reading my longwinded explanation of texture streaming, I hope it helped you to tweak your ini files to maximize your computer's usage of the streaming service. Remember, small changes in settings coupled with numerous tests will help you to ensure you do not break your game! And if I have missed anything, or I have explained anything wrong, please let me know! I'm still learning about all of this UE3 hullabaloo. Happy ROTTing!
Última edición por Rezulux; 2 AGO 2013 a las 17:14
< >
Mostrando 1-3 de 3 comentarios
MasterCrumble 2 AGO 2013 a las 16:57 
I tried editing my INI like yours above, but it sadly did not eliminate the texture pop-in. It could be improved, but I can't really say. Maybe the results vill vary depending on the PC system?

We need an uber expert in here!
Rezulux 2 AGO 2013 a las 17:08 
It appears as if there's simply a bug in the texture "pop-in" system that reloads all textures upon a respawn in multiplayer. These fixes will help a lot for singleplayer though, you shouldn't even notice pop-in with these tweaks in singleplayer.
Nicholas Steel 19 OCT 2013 a las 11:55 
I thought PoolSize shouldn't exceed your maximum amount of VRAM as textures are typically stored in your video cards memory, not RAM (Makes no sense to store such data in RAM). You'll also want to leave around 400 to 200MB free if your video card has 2GB of VRAM for the video card to use for other visual data. (The amount you should not reserve changes depending on how big the textures in the game are in general)

The UseTextureFileCache setting also determines whether the amount of VRAM specified by PoolSize is reserved for Texture usage (True), or if nothing is reserved and instead the data is dynamically loaded/unloaded as needed (False).

Edit: Forgot to mention that even if it did use RAM, it would be limited to a maximum 4GB as 32bit games and programs can only use at most 4GB of RAM (With the appropriate flag set on the EXE file and while using a 64bit operating system, otherwise only 2-3GB)
Última edición por Nicholas Steel; 20 OCT 2013 a las 6:40
< >
Mostrando 1-3 de 3 comentarios
Por página: 15 30 50

Publicado el: 2 AGO 2013 a las 15:38
Mensajes: 3