Guide:Skyrim Tree Settings
A guide to editing the Skyrim tree settings inside the INI files for the tinkering user
Suggested first reading: Skyrim Configurations Settings Guide
This guide is intended to be a guide to the tree configuration settings for The Elder Scrolls V: Skyrim game as set through INI files. While originally written for the original Skyrim game as released in 2011, everything written here works exactly the same in the Bethesda remaster known as Skyrim Special Edition. Its purpose is geared toward understanding how trees work in Skyrim and optimizing them for individual use. See the advanced original Skyrim INI and SkyrimPrefs INI guides for an advanced and comprehensive review of all configuration settings for original Skyrim.
About Skyrim's tree system
SpeedTree technology was used in previous Elder Scrolls games, but Bethesda Game Studios decided they could do better without it. Skyrim therefore is the first game where they employ their own custom tree system.
There are essentially two different ways trees can be rendered in Skyrim, which is designated in this guide as "static" and "dynamic."
The default version is the dynamic version. The dynamic version is used when the following INI settings have the values shown below:
[Trees] bEnableTreeAnimations=1 bEnableTrees=1
There are two different kinds of dynamic trees: "skinned" trees and "unskinned." Unskinned trees are basically a stripped down model of the tree. Skinned trees add more detail but are prone to tree popping. Skinned trees are toggled by bRenderSkinnedTrees in SkyrimPrefs.ini:
Avoiding tree popping
Unskinned trees avoid the tree popping effect noticeable when moving through the forests. This is demonstrated in the video below.
By default, Skyrim will render 20 skinned trees around the player character. As the player moves, the trees will put on more skin, causing them to pop a bit. This is demonstrated in the video below.
Now, skinned trees are obviously more detailed than unskinned trees. It’s not only the amount of limbs and leaves but also the bark that is greatly improved. Still, many players may decide that for the price of decreased detail in trees, the removal of the tree popping and the improved performance is a win. However, there is a way, at the cost of some performance, to get skinned trees and essentially eliminate the popping trees.
We can increase the amount of skinned trees rendered around the player, as well as increase the distance from the player that the trees are skinned, with the following settings:
[Display] fMeshLODLevel1FadeTreeDistance=6144 fMeshLODLevel2FadeTreeDistance=4096 fTreesMidLODSwitchDist=8192 [Trees] uiMaxSkinnedTreesToRender=200
This almost entirely removes the popping, due to the fact that all trees are now skinned and are rendered at a sufficient distance to make the process almost invisible, as seen in the video below. Please note that uiMaxSkinnedTreesToRender does not increase the number of trees.
All dynamic trees are animated, meaning that they wiggle. These tree animations can be removed by removing the resources allocated to them:
This makes the trees inanimate. Inanimate, unskinned trees are the most performance-friendly version in the game.
Summing up dynamic trees
Dynamic trees in summary:
- Dynamic trees may be skinned or unskinned.
- Dynamic unskinned trees avoid tree popping but lose detail.
- Tree popping on dynamic skinned trees may be avoided by adjusting their custom level of detail distance settings.
- Dynamic trees may be animated or inanimate.
The "static" version of tree rendering in Skyrim is done in a much simpler manner. The static version is used when either bEnableTreeAnimations or bEnableTrees are disabled in Skyrim.ini as shown below:
[Trees] bEnableTreeAnimations=0 bEnableTrees=0
There does not seem to be much variety in the static version. All trees will be fully skinned. All trees will remain inanimate. No tree popping will occur. This is simply because these two settings entirely alter the tree system. They effectively make trees into static models like all the other models dotting the landscape, with few exceptions. It disables the following INI settings:
[Display] fMeshLODLevel1FadeTreeDistance fMeshLODLevel2FadeTreeDistance fTreesMidLODSwitchDist
[Trees] bRenderSkinnedTrees uiMaxSkinnedTreesToRender
Tree meshes in the static version will be controlled by fMeshLODLevel1FadeDist and fMeshLODLevel2FadeDist instead of fMeshLODLevel1FadeTreeDistance and fMeshLODLevel2FadeTreeDistance.
Below is a video demonstrating the lack of tree popping on fully-skinned, static trees.
Summing up static trees
Static trees in summary:
- Static trees are always fully skinned.
- Static trees are always inanimate.
- Static trees avoid tree popping.
- Static trees share the main mesh level of detail distance settings.
Now that we know the two different ways trees may be rendered in Skyrim, what stays the same? Answer: Tree shadows and far-off tree visuals.
Tree shadows may be toggled on and off with bTreesReceiveShadows regardless of how the trees are rendered. Tree shadows are required by ENB.
Far-off tree visuals
Far-off trees will all look the same, and the maximum distance that they will be shown may be changed by altering the value of fTreeLoadDistance. The default medium value is given below.