Freemanhl2 Posted November 24, 2011 Share Posted November 24, 2011 (edited) Some of you may have noticed the middle distance Level Of Detail in Skyrim is somewhat subpar in comparison to the amazing graphics at close range and far away (if you havent then you soon will). The game is obviously very good looking and I think Bethesda did a great job visually, but the engine shows some real inefficiency when it comes to CPU scaling and optimization. Heres what I have learned so far. The game world seems to be broken up into "grids" (cells, blocks) or sections that are loaded into view as the player moves around, the amount of grids to load is controlled by the variable "uGridsToLoad" located in the skyrim.ini. I am unsure if uGrids refers to a static division of the world itself, or simply an incremental distance from the players central position at which data is streamed into view. The default value appears to be 7 and the game is likely programmed to only accept odd increments (e.g. 7,9,11). 13 is the highest uGridsToLoad value that I have managed to run on my system (6gb RAM, i7 950 3.0ghz, GTX480 1.7gb), others with more RAM could possibly experiment with 15. To prevent stuttering the game buffers grids outside of the viewing area, the size of this buffer is controlled by the value "uExterior Cell Buffer" also located in skyrim.ini. For anyone interested in experimenting with these settings I have created a tutorial here. Here are some screenshots ive taken with different grid values (FPS @ Top/Left) uGridsToLoad=7http://img256.imageshack.us/img256/3300/tesv2011112500480182.jpg uGridsToLoad=9http://img825.imageshack.us/img825/9489/tesv2011112500494074.jpg uGridsToLoad=11http://img818.imageshack.us/img818/1339/tesv2011112500510688.jpg uGridsToLoad=13http://img839.imageshack.us/img839/4601/tesv2011112500524382.jpg As you can see the difference is astounding. There are gameplay implications aswell, I find myself discovering more in the game world when I can actually see it from a distance, even in the image above there is a fisherman and his boat visable only at level 9, something I might have overlooked at level 7. Enemies can be seen from greater distances also, allowing you to avoid certain confrontations. But in the end it just looks better =) There is a downside tho, even with a relatively high end PC any value above 7 is unplayable for me. I have experienced frame rates of 17fps and under with uGrids at only 9.. Including iPreloadSizeLimit=536870912 (I assume this fetches upto 512mb into RAM?) and fMasterFilePreLoadMB=128.0000 in Skyrim.ini did help a lot, but still unplayable.. So I experimented to see if it was a Graphics or CPU bottleneck and amazingly halving the resolution, turning off all anti aliasing, all filtering, and a whole bunch of other stuff did NOTHING to my frame rate! This game eats CPU for breakfast lol I guess extending the amount of grids increases the number of active NPCs..? Altering "fLODFadeOutMultActors" in SkyrimPrefs.ini does nothing because this only controls the amount of actors rendered on screen, I assume AI routines are still beeing processed in the background. There are ways to decrease the amount of detail while maintaining a higher uGrids value, using the [TerrainManager] settings in skyrimprefs for instance. I can decrease fTreeLoadDistance (distance to render trees), fBlockMaximumDistance (distance to render terrain blocks) and fGrassStartFadeDistance (distance to render grass) untill there's basicaly no grass, trees or any terrain detail in the game what so ever lol it makes Morrowind look practicaly photo realistic by comparison and still no effect on FPS, wich is really strong evidence this game could look a lot better if somehow the Graphics and CPU resources could be scaled independently of each other. Why not just increase the LoadDistance's and LODlevel's for trees, grass, objects, actors etc and leave the uGridsToLoad value at default? Because no matter how high you set these values they will never render beyond the visable grids, outside this area appears to be a completely seperate "skybox" and there is no ability to control visual fidelity or move assets in/out of this region. I think the only way to make this work is to mod some of the higher fidelity assets into the skybox, textures might be easy enough but most objects dont even exist in that space. Perhaps there are values deeper inside the game that allow greater control over CPU resources, number of active NPCs etc that we can scale back to increase performance? A solution could potentialy be very simple (or impossible) and I think the results are much better then any texture pack could achieve, what do you guys think? I will keep working on this but my programming knowledge is average, so I welcome anyone who wants to help =) I want to create a better draw distance combined with some higher resolution assets and a few tweaks and package it as a MOD. Edited November 25, 2011 by Freemanhl2 Link to comment Share on other sites More sharing options...
LuDux Posted November 24, 2011 Share Posted November 24, 2011 Very interesting. Great sleuthing! It looks like 9 might be the sweet spot, in terms of obvious visual benefit. I'm going to try this out. Thanks! Link to comment Share on other sites More sharing options...
deama Posted November 24, 2011 Share Posted November 24, 2011 (edited) I don't have uGridsToLoad in my skyrim.ini :Sunder which section should I add it? EDIT: Come to think of it, I think that Beth was either too lazy or never thought of optimizing the grid thing above 7, maybe thats why its so... laggy?Or am I thinking it wrong? PS: The uGridtoload is supposed to go under the general tab... Edited November 24, 2011 by deama Link to comment Share on other sites More sharing options...
3AMt Posted November 27, 2011 Share Posted November 27, 2011 "The default value appears to be 7" Sorry to have to correct you, the default value is 5. I'm running the Skyrim with these settings: uExterior Cell Buffer=64uGridsToLoad=7iPreloadSizeLimit=51380224 It's very stable for me, no CTD even after 5 or 6 hours of playing with a huge graphical improvement :)Unfortunately an higher amount of the value (9,11,13) is not possible, doesn't matter what kind of hardware you have.I tried it for myself (with other .ini tweaks and other .dlls files) none of this seems to work and the game crshes every time the next grids have to load... My System:System: Windows 7 64-bit Processor: Intel Xeon X5460 @ 3.2GHz (8 CPUs)Memory: 65536MB RAM (64 GB)Card name: NVIDIA GeForce GTX 580 Link to comment Share on other sites More sharing options...
Pablo901 Posted December 4, 2011 Share Posted December 4, 2011 Hey. I'm trying to improve my graphics, cause' i think i have a little of free potential of my pc (Phenom X4 3,0GHz, 2x2GB RAM DDR3, Sapphire Radeon HD5850). But as I'm adding this uGridsToLoad=7 or 10 or anything, it doesn't give any result in game. I'm sure of it, checked it by making screenshots with fraps. What could be the problem? I tried to add it in skyrim.ini [Display] sD3DDevice="" uGridsToLoad=7 [Grass] b30GrassVS=1 [Water] bReflectLODObjects=1 bReflectLODLand=1 bReflectSky=1 .... or somewhere in skyrimprefs.ini ... bDoDepthOfField=1 iRadialBlurLevel=2 [Display] uGridsToLoad=7 iBlurDeferredShadowMask=3 fInteriorShadowDistance=3000.0000 fShadowDistance=8000.0000 ... and nothing happens :(I'd really appreciate some help here :< Link to comment Share on other sites More sharing options...
Blackwolf359 Posted December 18, 2011 Share Posted December 18, 2011 Hey. I'm trying to improve my graphics, cause' i think i have a little of free potential of my pc (Phenom X4 3,0GHz, 2x2GB RAM DDR3, Sapphire Radeon HD5850). But as I'm adding this uGridsToLoad=7 or 10 or anything, it doesn't give any result in game. I'm sure of it, checked it by making screenshots with fraps. What could be the problem? I tried to add it in skyrim.ini [Display] sD3DDevice="" uGridsToLoad=7 [Grass] b30GrassVS=1 [Water] bReflectLODObjects=1 bReflectLODLand=1 bReflectSky=1 .... or somewhere in skyrimprefs.ini ... bDoDepthOfField=1 iRadialBlurLevel=2 [Display] uGridsToLoad=7 iBlurDeferredShadowMask=3 fInteriorShadowDistance=3000.0000 fShadowDistance=8000.0000 ... and nothing happens :(I'd really appreciate some help here :< Did you also adjust these to match? uExterior Cell Buffer=64iPreloadSizeLimit=51380224 Link to comment Share on other sites More sharing options...
nukeclear Posted February 22, 2012 Share Posted February 22, 2012 for ugridstoload=9 to work you need to change cellbuffer to 100 Link to comment Share on other sites More sharing options...
Rennn Posted February 22, 2012 Share Posted February 22, 2012 Hey. I'm trying to improve my graphics, cause' i think i have a little of free potential of my pc (Phenom X4 3,0GHz, 2x2GB RAM DDR3, Sapphire Radeon HD5850). But as I'm adding this uGridsToLoad=7 or 10 or anything, it doesn't give any result in game. I'm sure of it, checked it by making screenshots with fraps. What could be the problem? I tried to add it in skyrim.ini [Display] sD3DDevice="" uGridsToLoad=7 [Grass] b30GrassVS=1 [Water] bReflectLODObjects=1 bReflectLODLand=1 bReflectSky=1 .... or somewhere in skyrimprefs.ini ... bDoDepthOfField=1 iRadialBlurLevel=2 [Display] uGridsToLoad=7 iBlurDeferredShadowMask=3 fInteriorShadowDistance=3000.0000 fShadowDistance=8000.0000 ... and nothing happens :(I'd really appreciate some help here :< You have it in the display section. Put it under the General section of the Skyrim.ini Link to comment Share on other sites More sharing options...
Kalos Posted February 22, 2012 Share Posted February 22, 2012 There should be a note made in the first post, much more visibly, that any value above uGridstoLoad=7 is unplayable and extremely buggy... Link to comment Share on other sites More sharing options...
porroone Posted February 22, 2012 Share Posted February 22, 2012 There should be a note made in the first post, much more visibly, that any value above uGridstoLoad=7 is unplayable and extremely buggy...I have been playing with uGridsToLoad=9 for months, no issues yet, I guess it depends in the memory interface of your graphic card, I have a gtx 470 with 384bits memory interface which I think allows me to play at that level, note that if you have a 560gtx for example, the memory interface is much lower so if the game cant get all the data through fast enough it will probably CTD, I got to this conclusion trying to up the ugrids, for me it became unstable at 13, but still could play for a few hours without CTD with a decent framerate. Link to comment Share on other sites More sharing options...
Recommended Posts