The StaticMesh pipeline provides the ability to create presets and automatically generate complete level of detail (LOD) chains as a core feature. This allows artists to create a mesh, import it, and have optimized versions created to be rendered at distance to improve rendering performance with no additional work required on their part.
The main features include:
-
LOD Groups that define default level-of-detail settings, light map resolution, and permit global overrides (e.g. reduce all SmallProp LODs by 10%). You may select an LOD group at import time and change it at any time in the Static Mesh editor.
-
Define and override LOD group settings on a per-platform or device basis.
-
Normals and tangents are always imported from the FBX. At any time you may choose whether to use the imported normals/tangents or have Unreal recompute them.
-
Streamlined workflow of setting up and tweaking LODs in the StaticMesh Editor.
-
Automatic generation of LODs using Simplygon.
LOD Management
The Level of Detail (LOD) panel in the StaticMesh Editor provides the ability to manage and generate complete chains of level of detail meshes according to rules you set up, either in the form of LOD Groups or on a per-mesh and per-LOD basis.
LOD Generation
Automatic LOD generation uses Simplygon to create simplified versions of the base mesh to be used as LODs. These algorithms take into account factors such as target complexity, preservation of silhouette and texture coordinates, and more in order to generate a new mesh that can be displayed at a distance without noticeable degradation or artifacts.
To apply an LOD Group:
-
Select the LOD Group to use in the LOD settings.
-
Press the button to create the new LOD meshes.
To generate a custom LOD chain:
-
Select the number of LOD meshes to generate in the LOD settings.
-
Set the Reduction Settings for each LOD mesh to be generated.
-
Press the button to create the new LOD meshes.
LOD Preview
The LOD meshes can be previewed using the controls in the toolbar:
LOD Settings
Setting | Description |
---|---|
LOD Group | Specifies the LOD Group to use for the mesh. |
Number of LODs | Sets the number of LODs for the mesh. The list of LODs updates as this value is modified, but no actual changes are made until the button is pressed. |
Auto compute LOD Distance | If enabled, a simple error metric is used to determine the distances at which transitions between LODs occur. Otherwise, the Distance property for each LOD is used to determine when transitions to that LOD occur. |
LOD Distance Error | Scales the distances at which transitions between LODs occur when using automatic computation. |
Build Settings
Setting | Description |
---|---|
Recompute Normals | If enabled, the smoothing groups will be recomputed by Unreal. Otherwise, smoothing groups will be retained from the FBX file. |
Recompute Tangents | If enabled, the tangents will be recomputed by Unreal. Otherwise, tangents will be retained from the FBX file. |
Remove Degenerates | If enabled, degenerate triangles found during import will be removed. Disabling this option will keep degenerate triangles found. In general, this option should be enabled. |
Use Full Precision UVs | If enabled, the UVs for the mesh will be stored as 32-bit floats instead of 16-bit. |
Reduction Settings
Setting | Description |
---|---|
Percent Triangles | The editor simplifies the mesh until it has the exact number of triangles specified. |
Max Deviation | The maximum deviation from the base mesh as a percentage of the bounding sphere. The editor uses the desired quality to compute an error metric for the mesh. This error metric prevents the tool from simplifying a mesh such that the surface of the new mesh deviates too much from the surface of the source mesh. The advantage to this approach is that the tool can intelligently optimize the mesh within some deviation of the source mesh without stopping at an arbitrary triangle limit. |
Silhouette | Specifies how important the silhouette of the mesh is. You can choose from Off, Lowest, Low, Normal, High, and Highest. Choosing a higher setting will cause the simplification to better preserve the geometric shape of the mesh but will result in a higher triangle count. |
Texture | Specifies how important texture density is. You can choose from Off, Lowest, Low, Normal, High, and Highest. Choosing a higher setting will cause the simplification to avoid texture stretching artifacts but will result in a higher triangle count. |
Shading | Specifies how important shading quality is. You can choose from Off, Lowest, Low, Normal, High, and Highest. Choosing a higher setting will cause the simplification to better preserve shading quality but will result in a higher triangle count. |
Welding Threshold | Vertices within this distance from one another will automatically be welded. This can help to eliminate small faces. Using large values can produce undesirable results. |
Hard Edge Angle Threshold | Angles larger than this value between faces will result in hard edges between faces. Smaller angles will create soft edges. |
LOD Groups
LOD groups define default level-of-detail settings as well as some options for globally modifying Static Meshes.
Groups are defined in the [StaticMeshLODSettings]
section of the Engine.ini
file. E.g.:
[StaticMeshLODSettings]
LevelArchitecture=(NumLODs=4,LightMapResolution=32,LODPercentTriangles=0.5,SilhouetteImportance=4)
SmallProp=(NumLODs=4,LODPercentTriangles=0.5)
LargeProp=(NumLODs=4,LODPercentTriangles=0.5)
Vista=(NumLODs=1)
Foliage=(NumLODs=1)
These settings define five LOD groups:
-
LevelArchitecture
-
SmallProp
-
LargeProp
-
Vista
-
Foliage.
LOD groups may be added and removed without code modifications simply by editing the INI. Additional LOD groups will automatically appear in the Editor UI. Meshes that are in groups that have been removed will use default settings determined by code. Those default settings may also be overridden in the INI by defining the None LOD group.
Group Default Settings
The following settings define the defaults for each group. They are applied only when a mesh is imported or a mesh's LOD group is changed.
Setting | Description |
---|---|
NumLODs | The default number of LODs to generate. This value must be in the range 1-4. |
LightMapResolution | The lightmap resolution to use. |
BasePercentTriangles | The percentage of triangles to keep in the base LOD, 0.0-1.0. |
LODPercentTriangles | The percentage of triangles to reduce each LOD. E.g. if this is set to 0.5 for a mesh with 4 LODs and LOD0 has 5000 triangles then the remaining LODs will have 2500, 1250, and 625 triangles respectively. |
MaxDeviation | The maximum distance by which the surface of an LOD may deviate from the base LOD in local space. |
WeldingThreshold | If the distance between two vertices is less than this value they will be welded together. |
HardAngleThreshold | If the angle between two triangles is above this value (in degrees), the normals will not be smooth over the edge between those two triangles. |
SilhouetteImportance | Higher values try to preserve the silhouette of the object when generating LODs. |
TextureImportance | Higher values try to prevent texture stretching when generating LODs. |
ShadingImportance | Higher values try to minimize changes to normal when generating LODs. |
Group Global Settings
The following settings can be used to make changes to all meshes in the group. These settings affect both new and existing meshes:
Setting | Description |
---|---|
BasePercentTrianglesMult | Further reduces the base LOD. E.g. if this is set to 0.9, the base LOD of all meshes in the group will have their triangles reduced by 10%. |
LODPercentTrianglesMult | Further reduces the triangles of each LOD. Similar to BasePercentTrianglesMult but does not apply to the base LOD. |
MaxDeviationBias | Tweak the maximum deviation used during reduction for all meshes. |
WeldingThreshold | Tweak the welding threshold used during reduction for all meshes. |
HardAngleThreshold | Tweak the hard angle threshold used during reduction for all meshes. |
SilhouetteImportance | Tweak the silhouette importance used during reduction for all meshes. |
TextureImportance | Tweak the texture importance used during reduction for all meshes. |
ShadingImportance | Tweak the shading importance used during reduction for all meshes. |
Simplygon®
Simplygon is used to automatically generate game-ready Level of Detail models (LODs) for a specific pixel resolution by removing as much information as possible without degrading LOD quality for a certain onscreen size. Simplygon uses a proprietary mesh reduction method that retains geometrical LOD integrity and visual quality of LOD switching, producing AutoLODs that can directly be used inside triple-A games.
Unreal Engine 4 leverages Simplygon to provide high-quality mesh reduction without having to leave the Unreal Editor. Developers can quickly simplify meshes, generate LODs, and immediately see the results in their maps.