LODSync component is already coming with Unreal Engine 5.0 and is not developed by us. See this Unreal Engine documentation for details. Any feature changes or issues regarding the component itself are not within our responsibility.
LODSync component support has been introduced for all default Character Editor skeletal meshes from the CharacterParts
folder. Other Polyphoria products might follow in the future.
This can reduce Prims (primitives count) up to less than 10% of the original asset quality, resulting in better FPS. See Performance Evaluation below.
We use this component for both our default UE4 mannequin and the UE5 MetaHumans.
Our BP_Character has the LODSync component attached and BP_CharacterCustomization > Function: Update LODSync Component updates how the individual Customization Data Assets components are handled by that component.
In summary, we take the MetaHumans approach and let the Basebody Body, Attachments, Equipment and Apparel CDAs using 4 LODs, while Basebody Head, Hairstyles and Groom are using their 8 LODs.
The Character Editor component handles the ForcedLOD
variable of the LODSync component when opening and closing. Thus when opening the Character Editor, the value is set to 0
, to force the highes mesh quality. When closing the Character Editor, the value is set to -1
again for automatic LOD switching. If you are using an Initialization Behavior that does not show the Character Editor on Begin Play, the value is also set to -1
, since the closing event is called directly.
If you have a custom character Blueprint and are not using the Character Editor component, but the LODSync component, make sure the ForcedLOD
variable of this component is set to -1
to allow automatic LOD switching by default.
The map Base/Maps/CharacterEditor_Showcase_Performance
has 128 BP_Character
instances with the same Customization Profile standing on a plane. This can be used to visualize LODs and tinker around if needed. Activate "Mesh LOD Coloration" when you want to see the individual LODs as shown below.
When opening the map, it may be necessary to re-compile
BP_Character
to update the LODSync component. When playing in editor that component is automatically updated.
When comparing performance differences, we recommend to use the following console commands.
stat fps
shows you the total FPS and milliseconds.stat unit
shows you the milliseconds, draws and prims breakdown of your totals.The testing below have been made with the following system (including an older GPU):
If you want to test differences yourself, open BP_Character
and change the ForcedLOD
value to different values and re-compile the Blueprint to update all LODSync component of the BP_Character
instances in the map.
We have 2 different values prepared below.
This is the highest quality LOD, essentially turning off the LODSync component.
With all 128 character in the view, we get ~28.000 Prims (primitives) drawn and ~38 FPS in lit mode.
Lit
Mesh LOD Coloration
This is the automatic LOD switching. Different LODs show different colors.
With all 128 character in the view, we get ~1.700 Prims (primitives) drawn and ~50 FPS in lit mode (+12 FPS).
Lit
Mesh LOD Coloration
Currently, we do not have combined or less material slots on higher LODs.
Reducing the amount of materials, can lead to less Draws, resulting in further FPS performance improvements.
Since we auto-generated all our LODs with "Skeletal Mesh Simplifier (Early Access)" built-in plugin, this is no easy task for that large amount of assets and is solved best with third-party 3D software to create LODs.
Currently, we do not have low-cost materials on higher LODs.
This could also improve GPU load, again resulting in better FPS.