Scalability Groups and Indexes
Unreal Engine provides scalability settings to adjust performance and visual quality across a wide range of hardware. These settings are categorized into groups with predefined index values:
- Low: 0
- Medium: 1
- High: 2
- Epic: 3
Configuring Scalability in Unreal Engine
Default and Custom Scalability Configuration
The base scalability settings for the engine are found in:
Engine\Config\BaseScalability.ini
These settings define the default behavior for scalability in Unreal Engine. However, you can override them for your game by creating a custom configuration file:
YourGame\Config\DefaultScalability.ini
Values are initially taken from BaseScalability.ini
but can be overridden by defining them in DefaultScalability.ini
. For example:
[FoliageQuality@0]
foliage.DensityScale=0.2
grass.DensityScale=0.2
In this case, when FoliageQuality is set to Low (0), both foliage and grass density are reduced to 20% of their full quality.
Setting Scalability Defaults in a Cooked Build
By default, when you package a game (cooked build), all scalability groups are set to Epic (3). If you want to modify this and use different default values, you must configure a DeviceProfile for your platform.
For example, to set all groups to High (2) on Windows, create or modify:
YourGame\Config\Windows\WindowsDeviceProfiles.ini
With the following content:
[Windows DeviceProfile]
+CVars=sg.AntiAliasingQuality=2
+CVars=sg.ViewDistanceQuality=2
+CVars=sg.ShadowQuality=2
+CVars=sg.GlobalIlluminationQuality=2
+CVars=sg.ReflectionQuality=2
+CVars=sg.PostProcessQuality=2
+CVars=sg.TextureQuality=2
+CVars=sg.EffectsQuality=2
+CVars=sg.FoliageQuality=2
+CVars=sg.ShadingQuality=2
This ensures that all scalability settings default to High instead of Epic.
Performance Index Thresholds
Unreal Engine uses Performance Index Thresholds to determine the appropriate scalability settings based on the system’s hardware. These thresholds are defined in:
Config\DefaultScalability.ini
Example:
[ScalabilitySettings]
; Adjust thresholds for a high-end 2018 GPU
PerfIndexThresholds_ResolutionQuality="GPU 18 115 350"
PerfIndexThresholds_ViewDistanceQuality="GPU 18 115 250"
PerfIndexThresholds_AntiAliasingQuality="GPU 18 115 500"
PerfIndexThresholds_ShadowQuality="GPU 18 115 500"
PerfIndexThresholds_GlobalIlluminationQuality="GPU 18 115 500"
PerfIndexThresholds_ReflectionQuality="GPU 18 115 350"
PerfIndexThresholds_PostProcessQuality="GPU 18 115 350"
PerfIndexThresholds_TextureQuality="GPU 18 115 250"
PerfIndexThresholds_EffectsQuality="GPU 18 115 350"
PerfIndexThresholds_FoliageQuality="GPU 18 115 250"
PerfIndexThresholds_ShadingQuality="GPU 18 115 250"
How Performance Index Thresholds Work
These thresholds define the quality level a system should use based on its performance index. The format consists of:
- Performance Index Type:
CPU
,GPU
, orMin
(the lower of the two) - Threshold Values: The numbers determine the quality level:
- Below the first value → Low (0)
- Between the first and second → Medium (1)
- Between the second and third → High (2)
- Above the third value → Epic (3)
Checking System Performance for Scalability
To check the performance index values of your system, you can use the following console command inside Unreal Engine:
SynthBenchmark
This command measures CPU and GPU performance, which can help determine the best scalability settings for the target hardware.