Performance

DynDOLOD is a set of tools that generates a LOD mod based on the load order and the options/settings made by the user. The visual results and the performance impact are what the user chooses it to be. Based on the settings and user choices, the resource requirements and performance impact can be less, same or more than the LOD of the vanilla game while the visual result is always vastly superior.

Certain INI settings can affect performance much worse then LOD ever could.

There are 3 presets to choose from and each will have a different performance impact. More models in the world means more data has to be loaded and displayed. Beyond the presets, the enthusiast modder can fine tune every aspect of LOD generation. Here are some pointers and configuration ideas.

A modern graphics card with decent amount of memory should have no problem dealing with the extra data. But if the game is already coping with high resolution textures and an ENB etc this is of course a totally different story.

In fact adding more object LOD uses more system memory. For screen archers trying to use lots of full models, this may be the limiting factor. For normal use this is mitigated by using ENB Host and SKSE with Skyrim Memory Patch 3.0. A fast disk system is recommended as well since more data needs to be read into memory.

Consider using crash fixes alternative memory allocation with the pre-loader. It may also help with general loading times.

Note that Windows 8 and 10 have has a DirextX9 bug limiting maximum VRAM use to 4GB. Check for this if there are intermittend performance drops when large amounts of texture memory needs to be swapped. ENBoost is recommended. If there is loading stutter while crossing cell borders, adjust ReservedMemorySizeMB. Start with a low value like 64MB and increase in small increments. It can be any number that works, so no need for specific powers of 2. Adjusting it can be done while in-game with the ENB overlay.

The Medium preset should be comparable to SDO (with *.esp but without the Morthal Swamp) + SkyFalls and SkyMills in terms of performance. However, visually they compare more to the low preset and then still wont have LOD for a large amount of objects because neither of them comes with over 1000 new LOD models.

SkyFalls and SkyMills adds a lot of animated objects that are enabled at all times and visible for a much greater distance than needed. Its waterfalls z-fight and at a certain distance draw over objects in front of them. DynDOLOD ships with optimized animated distant waterfalls which are less demanding and do not z-fight. The recommendation for best performance and visuals is to remove SkyFalls and SkyMills from the load order.

The larger windmill fan meshes of SkyFalls and SkyMills can be kept and will be automatically used by DynDOLOD. DynDOLOD will add dynamic LOD for waterfalls, windmill fan and water wheels to any worldspace and not only the select few SkyFalls and SkyMills was made for.

The choice to not use dyanmic LOD means even better performance but at the loss of some of the most stunning visual improvements. Dynamic LOD has better performance and less resource usage than the large reference system.

Consider resetting uGrids and all other INI settings for LOD to their default values. More LOD objects reduce the number of things popping-in out of thin air and reduce the need to raise certain settings which all have their own performance impact more or less regardless of how many objects have LOD.

All in all it is recommended to start with default INIs in case other settings regarding CPU or disk access have been changed as well.

The DynDOLOD SkyUI MCM Settings page allows to adjust certain INI settings to be adjusted while in the game.

Every additional tree LOD billboard LOD requires performance, which also depends on the value of fTreeLoadDistance in Prefs.ini. Adjust the TexgGen configuration to generate less LOD billboards or manually remove the *.dds/*.txt for specific trees found in ..\Textures\Terrain\LODGen\[mod name.esm/esp]\ to not generate tree LOD for certain trees.

See the TVDT - Occlusion Data explanations and how to enable automatic generation of LOD occlusion data for new worlds added by DLC or other mods.

Typically all LOD textures are assembled into 1 atlas texture to ..\Textures\DynDOLOD\LOD\DynDOLOD_Atlas_[WORLDSPACE].dds Depending on the number of single textures needed for a worldspace using smaller single textures can result in a smaller atlas texture for better performance.

DynDOLOD comes with 2 LOD texture sizes of 256 and 128 pixels. By default the 256 pixel versions are used. If texture memory is a problem install the low-res textures from the DynDOLOD Resources. Set a lower texture size when generating object LOD textures with TexGen. When generating LOD with DynDOLOD, set a lower Max tile size in the advanced options.

Alternatively the generated atlas textures can be resized with tools like DDSopt as long as the aspect ratio is kept intact.

After settling on a preset consider copying certain mesh rules from the other presets to fine tune object LOD and dynamic LOD to either improve performance or visuals.

If for example the Medium preset is selected but roads are not needed, take note of the '\roads\' mesh rule from the low preset and add it to the Medium preset.

Another option is to change the mesh rules. For example some object LOD objects come with different versions for different LOD Levels. The game ships with 'Meshes\LOD\Mountains\Mountaintrim03_lod_0.nif', 'Mountaintrim03_lod_1.nif' and 'Mountaintrim03_lod_2.nif'. The _0 is usually used for LOD Level 4, _1 for LOD Level 8 and _2 for LOD Level 16.

Yet the vanilla game only uses the LOD Level 16 'Mountaintrim03_lod_2.nif' for LOD Level 4 and nothing in LOD Level 8 and 16. The low preset has a mesh rule that does the exact same by setting Level 2 in the column 'LOD Level 4' for mesh rule 'mountaintrim03' and nothing in the other columns.

The Medium and High presets do not have a mesh rule for 'mountainrim03' so the default mesh rule '\' at the bottom defines to use 'Mountaintrim03_lod_0.nif' in LOD Level 4, 'Mountaintrim03_lod_1.nif' in LOD Level 8 and ' Mountaintrim03_lod_2.nif' in LOD Level 16. This a considerable change visually and performance wise.

To gain performance at the cost of visuals, add a mesh rule for 'mountaintrim' without the number '03' and set 'Level 2' in the LOD Level 4 column and 'Level 2' in the LOD Level 8 column, while keeping the LOD Level 16 column empty. Because of the missing '03' this rule applies to all 4 variants 'Mountaintrim01', 'Mountaintrim02', 'Mountaintrim03' and 'Mountaintrimslap'. It would then use the less demanding LOD Level 8 version in LOD Level 4 and the LOD Level 16 version in LOD Level 8.

All LOD objects have a LOD Level 4 version, larger objects also have a LOD Level 8 version and only the largest or most important objects have a LOD Level 16 version. Setting 'Level 1' for an object that does not have a LOD Level 8 version model means that nothing will be shown.

A quick way to gain performance at the cost of visuals is to check the box Prefer base record LOD assignments over rules. Then all of the vanilla LOD assignments similar to the 'Mountaintrim' mentioned above are used automatically without having to add or edit rules.

As a guideline, objects that are used very often have the highest impact while a couple large hi-poly buildings matter less.

As outlined above TexGen and DynDOLOD offers a plethora of settings and options, the visual result and performance impact is fully at the hands of the enthusiast modder. The presets are meant to be just a starting reference. Make sure to save customized presets for later use.