Jump to content

Draw Distance (uGridsToLoad)


Freemanhl2

Recommended Posts

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=7

http://img256.imageshack.us/img256/3300/tesv2011112500480182.jpg

 

uGridsToLoad=9

http://img825.imageshack.us/img825/9489/tesv2011112500494074.jpg

 

uGridsToLoad=11

http://img818.imageshack.us/img818/1339/tesv2011112500510688.jpg

 

uGridsToLoad=13

http://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 by Freemanhl2
Link to comment
Share on other sites

I don't have uGridsToLoad in my skyrim.ini :S

under 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 by deama
Link to comment
Share on other sites

"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=64

uGridsToLoad=7

iPreloadSizeLimit=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

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

  • 2 weeks later...

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=64

iPreloadSizeLimit=51380224

Link to comment
Share on other sites

  • 2 months later...

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

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

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...