Files
UE5-Modular-Game-Framework/docs/blueprints/14-data-assets/DA_RenderPipelineProfile.md
Lefteris Notas dc9c1a6b98 Add DA_RenderPipelineProfile and Platform Render Profiles documentation
- Introduced DA_RenderPipelineProfile data asset to define rendering pipeline configurations for various platforms and quality tiers.
- Documented enums, structs, variables, and default preset tables for render settings.
- Created a comprehensive developer guide for setting up platform-specific render profiles, including file structure, profile creation, and integration with upscalers.
- Included validation rules, console variable references, and testing matrices for ensuring compliance with platform requirements.
2026-05-22 18:10:24 +03:00

15 KiB
Raw Blame History

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 9001600 / 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.51.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 (03)
PostProcessQuality int32 Post-process complexity (03)
ViewDistanceQuality int32 View distance tier (03)
FoliageQuality int32 Foliage density tier (03)
AntiAliasingQuality int32 AA quality tier (03)
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:

[Global Illumination]
r.DynamicGlobalIlluminationMethod  <0=None, 1=Lumen, 2=SSGI, 3=Plugin>
r.Lumen.Reflections.Allow           <0/1>
r.Lumen.DiffuseIndirect.Allow       <0/1>
r.Lumen.TranslucencyVolume         <0/1>

[Shadows]
r.Shadow.Virtual.Enable             <0/1>
r.Shadow.CSM.MaxCascades           <0-4>
sg.ShadowQuality                   <0-4>

[Reflections]
r.ReflectionMethod                  <0=None, 1=Lumen, 2=SSR>
r.SSR.Quality                      <0-4>

[Upscaling]
r.TemporalAA.Upsampling            <0/1>
r.TSR.History.ScreenPercentage     <50-200>
r.NGX.DLSS.Enable                  <0/1>    (DLSS plugin)
r.FidelityFX.FSR2.Enabled          <0/1>    (FSR plugin)
r.FidelityFX.FI.Enabled            <0/1>

[Mesh / Nanite]
r.Nanite                           <0/1>
r.Nanite.MaxPixelsPerEdge         <1-4>
r.StaticMeshLODDistanceScale      <0.5-3.0>

[Post Process]
sg.PostProcessQuality              <0-3>
r.MotionBlurQuality               <0-4>
r.DepthOfFieldQuality             <0-4>

[Textures]
sg.TextureQuality                  <0-3>
r.Streaming.PoolSize              <MB value>

[View Distance]
sg.ViewDistanceQuality             <0-3>
r.ViewDistanceScale               <0.5-3.0>
foliage.LODDistanceScale          <0.5-3.0>

[Volumetrics]
r.VolumetricCloud                  <0/1>
r.VolumetricFog                   <0/1>

[Hardware RT]
r.RayTracing                       <0/1>
r.RayTracing.Shadows              <0/1>
r.RayTracing.Reflections          <0/1>

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.252.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.