Performance Parameters (MML)

You can tweak Crowd Rendering parameters to balance performance and quality. The parameters are defined in CVars, and some can be tweaked from the console at runtime (in a non-shipping build with console access) to find appropriate values for your project. The most useful ones are listed here.

To set custom values for each quality settings see: Override CVars Per Scalability Group

The default values can be found in <EditorLocation>/Config/BaseScalability.ini

Mesh prioritisation

Triangles are allocated to characters using these steps:

  • Cull all characters outside of the camera frustum

  • Allocate a minimum number of triangles to each character inside the frustum, and calculate the remaining number of 'spare' triangles from the total budget

  • Sort all characters into priority order, based on their screen-space size

  • Allocate the spare triangles to the highest priority n characters using an exponential dropoff

Mesh prioritisation settings

r.CarnivalTargetNumTriangles

The maximum number of triangles that will be rendered across all meshes. This is the main bottleneck for performance, more triangles = better quality and worse performance.

r.Carnival.Fidelity.MinNumTrianglesPerModel

The minimum number of triangles that each character will have. Lower value = worse looking meshes in the distance, but leaves more triangles available to be allocated to nearby meshes.

Ensure to set the value low enough that (minimum per character * maximum number of characters) < total triangles to avoid any rendering issues.

r.Carnival.Fidelity.NumModelsToPrioritize

The number of characters that are eligible to receive extra triangles.

r.CarnivalExtraTrianglesExponent

The rate of exponential drop-off when allocating spare triangles. A higher number means that the closest few characters will get most of the triangles (and therefore look better), while a lower number will give a more even distribution across the prioritised models.

Other settings

r.CarnivalTargetTextureMegaPixels

Set the total texture budget. Reducing this will result is less memory usage, but model textures will be lower resolution.

r.Carnival.CharacterBoundRadius

The base radius to radius to use for frustum culling. The default value is 90 which should be appropriate for most human-sized characters.

r.CarnivalEnableShadows

Whether Carnival characters cast shadows. Shadows can be disabled to improve performance somewhat.

r.Carnival.Fidelity.MaxNumOpsModelPerTick

The higher this value the quicker models will be updated to their correct fidelity level. Reducing this can improve CPU performance.

r.Carnival.Fidelity.MaxNumOpsTexturePerTick

The higher this value the quicker textures will be updated to their correct resolution. Reducing this can improve CPU performance.

Last updated

Was this helpful?