- MeshPassProcessor create function takes feature level as create parameter
- MeshPassProcessor base stores the processor enum type (handy for reference and stat tracking per pass type)
When pass enum value is not available then EMeshPassType::Num is used for now
#jira UE-139584
#rb Jason.Nadro, Mihnea.Balta, Zach.Bethel, Arciel.Rekman
#preflight 631b30f1304480f8f89fca35
[CL 21987972 by kenzo terelst in ue5-main branch]
* When r.Lumen.ScreenProbeGather.DirectLighting is enabled, all local lights will be rendered by Lumen (if enabled)
* With 8 shadowed lights on screen, Lumen Direct Lighting costs .4ms, while Cached Shadowmaps cost (1.3ms), Distance Field Shadows are (1.8ms) and Virtual Shadow Maps (6.1ms) on a 2080 TI at 1080p resolution
* IES profiles and Light Functions are not yet supported, nor is Hardware Ray Tracing
* Shadowing and light attenuation resolution is tied to Screen Probe Gather downsampling so quality becomes poor with High GI settings (32x downsampling)
* r.Lumen.ScreenProbeGather.LightSampleResolutionXY controls how many light samples are traced per Screen Probe, with lights being selected with equal probability. More lights overlapping causes more noise, not increased GPU cost.
#ROBOMERGE-OWNER: daniel.wright
#ROBOMERGE-AUTHOR: daniel.wright
#ROBOMERGE-SOURCE: CL 21213896 via CL 21214406 via CL 21214468
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
[CL 21214926 by daniel wright in ue5-main branch]
- Added FShadowSceneRenderer to handle shadow rendering (transient) work - intended to take over more responsibility from here on.
- Added cache invalidation when lights are removed from the FScene (required as ID / cache key may change)
- Modified caching scheme to drop cache entries when caching is disabled.
- Changed local light footprint estimation to depend on the scaled resolution (screen percentage)
- Moved light location data and test to per-light cache entry (rather than per-shadow map)
#rb andrew.lauritzen
#jira UE-122102
#preflight 62d820cb4b6d775f5fa9328a
#ROBOMERGE-OWNER: ola.olsson
#ROBOMERGE-AUTHOR: ola.olsson
#ROBOMERGE-SOURCE: CL 21198820 via CL 21198827 via CL 21198864
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
[CL 21199396 by ola olsson in ue5-main branch]
#fyi Charles.deRousiers
#preflight 62d721bf47779a730ab33659
Original CL Desc
-----------------------------------------------------------------
Fix hair strands shadow culling when hair instance is not visible in primary view.
#rb none
#jira UE-117220
#preflight 62d6d3883c3df323902765a3
[CL 21167606 by Jason Nadro in ue5-main branch]
- Removed scene render mem-mark among others. MemStack usage is now restricted to local scopes with known marks.
- Render resources with destructors are allocated using the FSceneRenderingBulkObjectAllocator on FSceneRenderer, which is deleted when the scene render is.
#preflight 62b266e20d4d6228de97babe
#rb mihnea.balta, yuriy.odonnell
[CL 20907647 by zach bethel in ue5-main branch]
Added CheckForErrors to detect cases where minimap builder will either fail to generate or will generate a low quality mini-map.
#rb sebastien.lussier, jeanfrancois.dube
#jira UE-156424
#preflight 62aca0dd5c69124c40c9f51a
[CL 20704552 by Richard Malo in ue5-main branch]
The refactor to get rid of the FSceneTextures and FSceneTexturesConfig global singletons has also been preserved. The FViewFamilyInfo is used to hold those structures, so client facing API functions that lack a scene renderer reference can still pull the FSceneTextures[Config] from the view family pointer. All other scene renderer state has been moved from FViewFamilyInfo back into FSceneRenderer.
#jira none
#rnx
#rb ola.olsson krzysztof.narkowicz zach.bethel
#preflight 629f770e233ae0a8f8fb7f2e
[CL 20540730 by jason hoerner in ue5-main branch]
* Added "BeginRenderingViewFamilies" render interface call that accepts multiple view families. Original "BeginRenderingViewFamily" falls through to this.
* FSceneRenderer modified to include an array of view families, plus an active view family and the Views for that family.
* Swap ViewFamily to ActiveViewFamily.
* Swap Views array from TArray<FViewInfo> to TArrayView<FViewInfo>, including where the Views array is passed to functions.
* FSceneRenderer iterates over the view families, rendering each one at a time, as separate render graph executions.
* Some frame setup and cleanup logic outside the render graph runs once.
* Moved stateful FSceneRenderer members to FViewFamilyInfo, to preserve existing one-at-a-time view family rendering behavior.
* Display Cluster (Virtual Production) uses new API.
Next step will push everything into one render graph, which requires handling per-family external resources and cleaning up singletons (like FSceneTextures and FSceneTexturesConfig). Once that's done, we'll be in a position to further interleave rendering, properly handle once per frame work, and solve artifacts in various systems.
#jira none
#rnx
#rb zach.bethel
#preflight 625df821b21bb49791d377c9
[CL 19813996 by jason hoerner in ue5-main branch]
Local light shadows are supported on mobile forward and deferred, need to enable full depth prepass to generate the ShadowMaskTexture.
Remove the 4 maximum local lights limitation on mobile forward.
Remove the "High Quality Reflection" on mobile forward.
Disable simple lights on mobile forward.
#jira UE-149064
#rb Dmitriy.Dyomin
#preflight 625d17da772cf82d3a6059a6
[CL 19784597 by Wei Liu in ue5-main branch]
- Point/Spot lights use the same FProjectedShadowInfo for all views. RayTracedShadowsTexture was only generated for the first view. Other views also sampled first view data.
- Store RayTracedShadowsTexture per view in DistanceFieldShadowViewGPUData to avoid using the cached result of a different view.
#rb Sebastien.Hillaire, Jian.Ru
#preflight 624ef87e3603402d600744e1
[CL 19669626 by tiago costa in ue5-main branch]