Arcane University:LOD Model Creation

The Beyond Skyrim Wiki — Hosted by UESP
Revision as of 23:14, 17 June 2021 by Gamma Metroid (Talk | contribs) (Technical Constraints: separate into no/yes)

Jump to: navigation, search
A compiled LOD file of Whiterun, viewed in NifSkope.

LOD, or level of detail, is the method used in video games to render distant objects at a lower complexity, for better performance. For objects in Skyrim, this is achieved by using meshes with lower polycount created by the 3D artists. These models are then compiled into groups of 4x4, 8x8, and 16x16 cells during LOD Generation. The resulting compiled nifs are loaded and rendered for cells that are not occupied by or near the player character. This article will detail the methods for creating LOD models for objects in Skyrim.

Since LOD models will only be seen at a distance, not everything needs to have them. LOD is mainly used for architecture, trees, mountains, ships, and similar large objects that would be noticeably absent from a distance. Smaller clutter objects are not noticeable when invisible at a distance, so they don't need LOD models. Trees in Skyrim use a pair of billboards (planes) for LOD, but this only looks good for trees that are more or less symmetrical. Otherwise, they can be implemented as objects instead, and use full 3D LOD meshes.

Overview

There are four levels of LOD used by Skyrim, referred to as LOD0, LOD1, LOD2, and LOD3. Alternately, you may hear them referred to as LOD4, LOD8, LOD16, and LOD32, respectively. This guide will use the former system.

  • LOD0 is the first level, which appears first as the player moves away from the object. This usually happens at a distance of [INSERT DISTANCE IN CELLS]. Many medium-sized objects only have this first level, and then fade out at greater distances.
  • LOD1 is the second level, which is visible around the [INSERT DISTANCE IN CELLS] range. This is used for larger objects like buildings, trees, and landscape objects.
  • LOD2 is the next level, which is visible only at great distances, and often uses the same model as LOD1. Only the largest objects require a separate model for LOD2. This is also the level which is shown by default on the map (although this is configurable by the user in an ini file).
  • LOD3 is not used in Skyrim.
Caption

Technical Constraints

There are several technical constraints to keep in mind before making your LOD models:

  • No Specular: LOD models do not use specular maps, so you can remove this from the material in your 3D package to reduce extra steps after export. This also means that the downscaled normal maps do not need the specular information in the alpha channel, and can be compressed to BC1 without loss of specular information.
  • No animation: LOD models cannot be animated. If you must have an object that retains its animation at a distance, use the "Is Full LOD" option on the object reference, and be sure the object form has no LOD meshes assigned. Use this sparingly, as the full detail mesh will be loaded no matter where you are in the worldspace.
  • No collision: Since the model will only be loaded at a distance, it does not need collision. If it is included in the nif, it will be ignored at LOD Generation.
  • No BSXFlags: Similarly, the nif does not need BSXFlags, since they too are irrelevant. They will also be ignored if included.

However, some features are supported by LOD:

  • Vertex Colors: LOD models do retain vertex color information, which is useful for maintaining faked shadow detail.
  • Transparency: Only alpha testing is supported, but not alpha blending. This also means the diffuse textures can be compressed to BC1 without a loss of transparency gradients. Keep in mind as always, however, that transparency is very resource intensive.
  • Glow: LOD models can use the glow shader. If using xLODGen, simply add "passthru" to the name of the trishape.

Methods

  • Polycount: It should of course be much less than the full model. How much less will depend on the complexity of the original mesh, and how large it is, so exercise your judgment. A good rule of thumb is to make LOD0 to have 20% of the triangles that the full mesh has, and LOD1 to have 10%. If this brings it down to the low hundreds, that should be enough.
  • Texture size: LOD meshes can and should use smaller textures, if possible, so that they can be atlased, with few exceptions. At the distances that LOD is visible, 128 or sometimes 256 is usually sufficient.

decimate with custom model

  • best for things that are already baked, or unique architecture
  • exactly the same workflow as baking a low poly

decimate and adjust UVs

  • good for things that use tiling textures
  • adusting UVs
    • usually just do it
    • may need to tile the downscaled texture itself
    • for really intense tiling (like mountains), can use the full texture. use sparingly and only for LOD0 as it will not be atlased

CK Implementation

Tips and tricks

  • When making LOD models for a set, it is handy to keep a separate file with all the related LOD materials collected, so you can then import them and assign them to whichever model you are making.

See also