Skip to content

Performance Optimization Guidelines

flow____ edited this page Apr 5, 2024 · 8 revisions

Graphics Card Memory is mostly limited across multiple Target Devices, so it makes sense using the CPU Memory, there are some engines out there which does work mostly on the GPU but for Unreal Engine this is not the case, a lot of it like Animations etc. are still using massively the CPU.

It also makes no sense to cache most of the Data, because in the end on a complicated system the amount of memory can be a bottleneck, sometimes generating the data at runtime is much faster.

Here some performance optimization guidelines:

CPU Time

Mesh Asset

  • Increase Time Between Animation Library Frames to the most acceptable value
  • Enable Use Distance Updating and play around with the Distance Updating Ratio
  • Increase Auto Lod Ratio
  • Disable Animations for High Distance LODs, do you really need to Animate LOD 14 which is 800 Meters away from the camera?

Animation Controller

  • Solve the Animations just one time per frame when having just one Update Group
  • Use Multiple Update Groups, Updated Groups, when using correctly are the most powerful optimization technique in TS
  • Multi-Thread the controller; 95% of all functions are Thread safe
  • Use C++ Instead of BP

Content Creation

  • Use max 30–75 bones on the Mesh

GPU Time

Mesh Asset

  • Increase Time Between Animation Library Frames to the most acceptable value
  • Decrease Highest Detail Draw Distance
  • Increase Auto Lod Ratio
  • Disable Animations for High Distance LODs, do you really need to Animate LOD 14 which is 800 Meters away from the camera?

Control Panel

  • Make sure the Mesh has enough LODs, there is no performance downside using too many LODs, it may look wrong having just a quad on the last LOD
  • In the Tweak Section, make sure the Textures having good dimensions

Content Creation

  • Use max 30–75 bones on the Mesh
  • Make sure the Material you use is optimized, because the Vertex Skinning of the Vertices is a heavy operation
  • Use less geometry for the mesh, you can exclude LODs from the system in the Mesh Asset, most of the Time LOD 2 or 3 is good enough for the 1st LOD

Draw Calls

Having 2 Material on the Mesh meaning, there are 2 Mesh Sections under the hood:

  • One Archetype with 1 Mesh Section is generating 1 Draw call, with 4 Mesh Sections, 4 Draw Calls
  • Individual Instances don't create draw calls
  • Keep the Instances count high but keep the Archetype count low

Memory

  • Instances create CPU and GPU Memory
  • More Animations Create More Memory on the CPU and GPU
  • Increase Time Between Animation Library Frames to the most acceptable value to increase FPS

Clone this wiki locally