DA_RenderPipelineProfile — Data Asset
Parent Class: UPrimaryDataAsset
Dependencies: BPC_RenderPipelineManager
Purpose: Defines a complete rendering pipeline configuration for a specific quality tier on a specific platform family. Each profile maps quality presets (Low/Medium/High/Ultra/Cinematic) to concrete UE5 render settings: global illumination method, shadow method, reflection method, anti-aliasing, upscaling, Nanite/LOD strategy, and post-process presets. Designers configure these per-platform so PS4 gets baked light + CSM shadows while PS5 gets Lumen + Virtual Shadow Maps.
Design Rationale
UE5's rendering pipeline is not runtime-switchable for certain features (Lumen ON/OFF, Nanite ON/OFF). These must be configured before the engine initializes or before a level loads. This Data Asset serves as the single source of truth for the render pipeline configuration. BPC_RenderPipelineManager reads the appropriate profile based on the player's quality selection and platform, then applies console variables through UE5's IConsoleManager or UGameUserSettings scalability API.
1. Enums
ERenderPipelineMethod
| Value |
Description |
Lumen_GI = 0 |
Lumen Global Illumination + Reflection |
Baked_Lightmass = 1 |
Static baked lightmaps + reflection captures |
SSGI = 2 |
Screen-space global illumination (mid-range fallback) |
None = 3 |
No GI — unlit or emissive-only |
EShadowMethod
| Value |
Description |
VirtualShadowMaps = 0 |
UE5 Virtual Shadow Maps (Nanite-compatible) |
CascadedShadowMaps = 1 |
Traditional CSM (low-end compatible) |
DistanceFieldShadows = 2 |
Ray-traced distance field shadows |
None = 3 |
No dynamic shadows |
EReflectionMethod
| Value |
Description |
Lumen_Reflections = 0 |
Lumen reflection system |
ScreenSpace = 1 |
Screen-space reflections (SSR) |
ReflectionCaptures = 2 |
Static sphere/box reflection captures (baked) |
None = 3 |
No reflections |
EUpscalerMethod
| Value |
Description |
TSR = 0 |
Temporal Super Resolution (UE5 built-in) |
DLSS = 1 |
NVIDIA DLSS 3 (requires plugin + RTX GPU) |
FSR = 2 |
AMD FidelityFX Super Resolution 2/3 |
PSSR = 3 |
PlayStation Spectral Super Resolution (PS5 Pro only) |
XeSS = 4 |
Intel Xe Super Sampling |
NIS = 5 |
NVIDIA Image Scaling (vendor-agnostic) |
None = 6 |
Native resolution — no upscaling |
TAAU = 7 |
Temporal Anti-Aliasing Upsample (legacy) |
EMeshStrategy
| Value |
Description |
Nanite = 0 |
Nanite virtualized geometry (UE5 only) |
Traditional_LOD = 1 |
Standard static mesh LODs |
ProxyGeometry = 2 |
HLOD/proxy geometry for distant objects |
EPlatformFamily
| Value |
Description |
Default Render Method |
PC_High = 0 |
PC with RTX 2000+ / RX 6000+ |
Lumen + Nanite |
PC_Low = 1 |
PC with GTX 900–1600 / iGPU |
Baked + CSM |
PS5 = 2 |
PlayStation 5 |
Lumen + Nanite |
PS5_Pro = 3 |
PlayStation 5 Pro (PSSR support) |
Lumen + Nanite + PSSR |
PS4 = 4 |
PlayStation 4 / PS4 Pro |
Baked + CSM + TAAU |
Xbox_Series = 5 |
Xbox Series X|S |
Lumen + Nanite |
Xbox_One = 6 |
Xbox One / One X |
Baked + CSM + TAAU |
Switch_2 = 7 |
Nintendo Switch 2 (when available) |
Baked + CSM + FSR |
Switch = 8 |
Nintendo Switch |
Baked + ProxyGeometry + NIS |
SteamDeck = 9 |
Steam Deck / handheld PC |
Baked/SSGI + CSM + FSR |
2. Structs
SRenderPipelineConfig
| Field |
Type |
Description |
QualityPresetName |
FName |
Identifier ("Low", "Medium", "High", "Ultra", "Cinematic") |
GIMethod |
ERenderPipelineMethod |
Global illumination method |
ShadowMethod |
EShadowMethod |
Shadow rendering method |
ReflectionMethod |
EReflectionMethod |
Reflection rendering method |
Upscaler |
EUpscalerMethod |
Upscaling method |
UpscalerQuality |
int32 |
Upscaler quality tier (0=Performance, 1=Balanced, 2=Quality, 3=UltraQuality) |
MeshStrategy |
EMeshStrategy |
Geometry rendering strategy |
ResolutionScale |
float |
Screen percentage (0.5–1.0) |
DynamicResolutionTarget |
float |
Target ms for dynamic resolution (0=disabled) |
ShadowQuality |
int32 |
Shadow resolution/distance tier (0=NONE, 1=LOW, 2=MED, 3=HIGH, 4=EPIC) |
TextureQuality |
int32 |
Texture streaming pool tier (0–3) |
PostProcessQuality |
int32 |
Post-process complexity (0–3) |
ViewDistanceQuality |
int32 |
View distance tier (0–3) |
FoliageQuality |
int32 |
Foliage density tier (0–3) |
AntiAliasingQuality |
int32 |
AA quality tier (0–3) |
bEnableMotionBlur |
bool |
Motion blur toggle |
bEnableDepthOfField |
bool |
Depth of field toggle |
bEnableVolumetricClouds |
bool |
Volumetric cloud rendering |
bEnableVirtualTextures |
bool |
Runtime virtual textures |
bEnableHWRT |
bool |
Hardware ray tracing (requires RT-capable GPU) |
bRequiresLevelReload |
bool |
TRUE if this setting requires a level reload to take effect |
TargetFPS |
int32 |
Frame rate target (0=unlimited) |
bEnableVSync |
bool |
Vertical sync |
Description |
FText |
Human-readable description for settings UI |
SPlatformRenderDefaults
| Field |
Type |
Description |
Platform |
EPlatformFamily |
Target platform |
DefaultQualityPreset |
FName |
Preset to use on first launch ("Medium" for most) |
SupportedPipelines |
TArray<ERenderPipelineMethod> |
Which GI methods this platform supports |
SupportedUpscalers |
TArray<EUpscalerMethod> |
Which upscalers this platform supports |
MaxResolutionScale |
float |
Maximum resolution scale (e.g., 1.0 for PS5, 0.7 for Switch) |
MaxFPS |
int32 |
Maximum recommended FPS target |
VRAMBudget_MB |
int32 |
Typical VRAM budget for this platform |
bSupportsNanite |
bool |
Platform supports Nanite |
bSupportsLumen |
bool |
Platform supports Lumen |
bSupportsHWRT |
bool |
Platform supports hardware ray tracing |
ConsoleVariables |
TMap<FString, FString> |
Additional platform-specific CVar overrides |
3. Variables
Configuration (Instance Editable)
| Variable |
Type |
Default |
Category |
Description |
PlatformFamily |
EPlatformFamily |
PC_High |
Config |
Which platform this profile targets |
PlatformDefaults |
SPlatformRenderDefaults |
— |
Config |
Platform-specific capabilities and defaults |
QualityPresets |
TMap<FName, SRenderPipelineConfig> |
Empty |
Config |
Maps quality preset names to render configs |
bAllowDynamicPresetSwitch |
bool |
true |
Config |
Whether quality can change without level reload |
bAutoDetectPlatform |
bool |
true |
Config |
Auto-detect platform at startup |
4. Default Preset Tables (Per-Platform)
PS5 (EPlatformFamily::PS5) — Target: 60 FPS
| Preset |
Resolution % |
GI |
Shadows |
Reflections |
Upscaler |
Mesh |
FPS |
| Low |
70% |
Baked |
CSM |
Captures |
TSR Perf |
LOD |
60 |
| Medium |
85% |
Lumen Low |
VSM Low |
Lumen Low |
TSR Balanced |
Nanite |
60 |
| High |
100% |
Lumen High |
VSM High |
Lumen High |
TSR Quality |
Nanite |
60 |
| Ultra |
100% |
Lumen Ultra |
VSM Ultra |
Lumen Ultra |
PSSR |
Nanite |
60 |
| Cinematic |
100% |
Lumen + HWRT |
VSM + RT |
Lumen + RT |
PSSR |
Nanite |
30 |
PS4 (EPlatformFamily::PS4) — Target: 30 FPS
| Preset |
Resolution % |
GI |
Shadows |
Reflections |
Upscaler |
Mesh |
FPS |
| Low |
60% |
None |
CSM Low |
None |
TAAU |
Proxy |
30 |
| Medium |
75% |
Baked |
CSM Medium |
Captures |
TAAU |
LOD |
30 |
| High |
90% |
Baked |
CSM High |
Captures + SSR |
TAAU |
LOD |
30 |
PC_High (RTX 3080+) — Target: 120 FPS
| Preset |
Resolution % |
GI |
Shadows |
Reflections |
Upscaler |
Mesh |
FPS |
| Low |
70% |
SSGI |
CSM |
SSR |
DLSS Perf |
LOD |
120 |
| Medium |
85% |
Lumen Low |
VSM |
Lumen Low |
DLSS Balanced |
Nanite |
120 |
| High |
100% |
Lumen High |
VSM |
Lumen High |
DLSS Quality |
Nanite |
120 |
| Ultra |
100% |
Lumen Ultra |
VSM Ultra |
Lumen Ultra |
DLSS Quality |
Nanite |
120 |
| Cinematic |
120% |
Lumen + HWRT |
VSM + RT |
Lumen + RT |
DLSS UltraQ |
Nanite |
60 |
PC_Low (GTX 1060 / integrated) — Target: 30 FPS
| Preset |
Resolution % |
GI |
Shadows |
Reflections |
Upscaler |
Mesh |
FPS |
| Low |
50% |
None |
CSM Low |
None |
FSR Perf |
Proxy |
30 |
| Medium |
65% |
Baked |
CSM Medium |
Captures |
FSR Balanced |
LOD |
30 |
| High |
80% |
SSGI |
CSM High |
SSR |
FSR Quality |
LOD |
30 |
Switch (EPlatformFamily::Switch) — Target: 30 FPS
| Preset |
Resolution % |
GI |
Shadows |
Reflections |
Upscaler |
Mesh |
FPS |
| Low |
40% |
None |
CSM Low |
None |
NIS |
Proxy |
30 |
| Medium |
55% |
Baked |
CSM Med |
Captures |
NIS |
LOD |
30 |
| High |
70% |
Baked |
CSM High |
Captures |
FSR |
LOD |
30 |
Xbox_Series (EPlatformFamily::Xbox_Series) — Target: 60 FPS
| Preset |
Resolution % |
GI |
Shadows |
Reflections |
Upscaler |
Mesh |
FPS |
| Low |
70% |
Baked |
CSM |
Captures |
FSR Perf |
LOD |
60 |
| Medium |
85% |
Lumen Low |
VSM Low |
Lumen Low |
FSR Balanced |
Nanite |
60 |
| High |
100% |
Lumen High |
VSM High |
Lumen High |
FSR Quality |
Nanite |
60 |
| Ultra |
100% |
Lumen Ultra |
VSM Ultra |
Lumen Ultra |
FSR Quality |
Nanite |
60 |
5. Functions
This Data Asset has no Blueprint functions. All data retrieval is performed by BPC_RenderPipelineManager reading the struct tables directly.
6. Console Variable Reference (per setting)
When BPC_RenderPipelineManager applies a SRenderPipelineConfig, it sets these UE5 console variables:
7. Integration with Planar Capture System
The Planar Capture System (BPC_PlanarCapture, system 136) uses SceneCapture2D components that capture the world from a separate camera. These captures respect the world's current render state, meaning:
| Main Pipeline Setting |
Effect on Planar Capture |
| Lumen GI ON |
Capture shows Lumen-lit scene (if bEnableLumen on capture profile) |
| Baked Lightmass |
Capture shows baked lighting — SceneCapture2D picks this up naturally |
| Nanite ON |
Captures render Nanite geometry (significant cost — bump down capture quality tier) |
| Traditional LOD |
Captures use standard LOD — lower cost |
| VSM ON |
Capture benefits from VSM (if capture profile enables shadows) |
| CSM |
Capture uses CSM — lower cost but lower quality |
Key rule: When the main pipeline switches to Baked Lightmass, the Planar Capture System's quality tier profiles should also use bEnableLumen = false to prevent the capture from trying to enable Lumen on a world that doesn't use it. BPC_RenderPipelineManager broadcasts OnRenderPipelineChanged which SS_PlanarCaptureManager binds to, adjusting its GlobalQualityCap accordingly.
See BPC_RenderPipelineManager for the full integration spec.
8. Validation Rules
- At least one quality preset must be defined
- All preset names must be unique
bRequiresLevelReload must be TRUE for profile changes that modify GIMethod, ShadowMethod, or MeshStrategy from the current value
- Platform family must not be
Unknown (use auto-detection as fallback)
- ResolutionScale must be 0.25–2.0
- Upscaler must be in
SupportedUpscalers for the target platform
9. Consumed By
10. Reuse Notes
- Platform profiles are Data Asset instances — designers create
DA_RPP_PS5, DA_RPP_PS4, DA_RPP_PC_High, DA_RPP_PC_Low, etc.
- The
bRequiresLevelReload flag is critical — UI must display a "requires restart" warning when the player changes a pipeline-affecting setting (GI method, shadow method, Nanite toggle).
- Upscaler plugins (DLSS, FSR, XeSS) must be enabled in
Project Settings → Plugins. If a plugin is missing, the system falls back to the next available upscaler.
- For console certification: each platform must have a
DA_RenderPipelineProfile instance that meets Sony/Microsoft/Nintendo TRC requirements (minimum FPS target, resolution floor).
- The
ConsoleVariables override map on SPlatformRenderDefaults allows per-platform tweaks without modifying the quality preset structs.