FMaterialRenderProxy doesn't appear to know which FScene it belongs to, so I had to go through the global render module and flag all scenes instead
#rb Ben.Ingram, Jason.Nadro
[CL 16704202 by chris kulla in ue5-main branch]
- Resource state transitions handled by RDG.
- FDistanceFieldObjectBufferResource replaced by FDistanceFieldCulledObjectBufferParameters to use RDG.
- FTileIntersectionResources replaced by FTileIntersectionParameters to use RDG.
- FAOScreenGridResources replaced by FAOScreenGridParameters to use RDG.
- Don't store DFAO resources in View.State.
- Split FDeferredShadingSceneRenderer::RenderDistanceFieldAOScreenGrid() into multiple passes.
- Split BuildTileObjectLists() into multiple passes.
#rb daniel.wright
[CL 16660080 by tiago costa in ue5-main branch]
- Added instance data validation
- Added general load balancer for instance processing on GPU (will move to own files later)
- Added initial GPU-side write access API for GPU scene.
- Addded specialized kernel to update primitive IDs in instances when that is the only change.
#rb graham.wihlidal
#jira UE-116671
#preflight 60c25d7b1264df0001aab80b
#ROBOMERGE-SOURCE: CL 16628528
#ROBOMERGE-BOT: (v831-16623017)
[CL 16628539 by ola olsson in ue5-main branch]
2. Add a project setting option to avoid generating velocity and TAA shader unexpectly for mobile platform.
#jira none
#rb Dmitriy.Dyomin, Guillaume.Abadie
[CL 16584354 by Wei Liu in ue5-main branch]
Clean up atmospheric fog and have it instaciate a sky atmosphere by default instead
AtmosphericFog now inherits from SkyAtmosphere and looks vaguely similar. Serialisation is handled with a serialisation enum + ue5 version.
"ClassRedirects" could not be used because parameters are not compatible and also due to different serialisation on both component.
So instead Skyamtosphere now has a bool bIsAtmosphericFog (false by default).
AtmosphericFog component now inheriting from Skyatmosphere is setting that to true so that serialisation can be properly handled for both cases : pure Skyatmosphere or SkyAtmosphere replacing a AtmosphericFog with loading/saving. This also supports StaticLightingGUID once converted, see USkyAtmosphereComponent::Serialize.
SkyAtmosphere aerial perspective is now properly gated behind the base pass vertex shader designed for that using BASEPASS_SKYATMOSPHERE_AERIALPERSPECTIVE.
Removed all AtmosphericFog related render code.
Renamed a bunch of shader permutation.
UActorFactoryAtmosphericFog is removed so that the actor is no longer visible and instanciable from menu (existing actors in levels are still created correctly)
UAtmosphericFogComponent is made notplaceable.
ShooterGame compiled and ran succesfuly.
Colton Daniels (QA) will upate reference screneshot in a later CL.
#rb Charles.derousiers, Marc.Audy, Kevin.Ortegren
[CL 16455741 by Sebastien Hillaire in ue5-main branch]
This CL adds GPU->CPU readback back to adpat voxel size based on previous frame allocated page count. If we run out of page, we increase voxel size, so that next allocations fit into the memory constraint. This approach is not perfect as at least one /two frames will have glitches (over allocation not-compensated) and continuous change, can create oscillation which are not so easy to counter balance due to latency.
Manual port of CL 16346703
#rb none
#jira UE-112274
[CL 16364797 by Charles deRousiers in ue5-main branch]
More work to do but this is a minimal functional starting point.
#rb halfdan.ingvarsson
#preflight 609da63e046b9d00010b8246
[CL 16321681 by Jeremy Moore in ue5-main branch]
This is another small step towards enabling path tracing specific shader permutations.
This requires re-caching the raytracing mesh commands when we flip to and from path traced rendering.
Cleanup some flag handling by removing the redundant ERayTracingRenderMode enum since it is already capture by show flags.
Avoid checking the path tracing flag per view since it is always common to all views
Re-introduce the deduplication over views for the non-path tracing case since ray tracing effects can be enabled in a view dependent fashion.
Rename CanOverlayRayTracingOutput to HasRayTracedOverlay which I think is a bit clearer. Note that the meaning has flipped - it now returns true when path tracing or ray tracing debug modes are enabled.
Remove leftovers of GAveragePathTracedMRays (which wasn't hooked up to anything anymore)
Refactor static variables used to store path tracing state into a pimpl object off of the ViewState
#rb Patrick.Kelly, Yuriy.ODonnell, Juan.Canada
[CL 16249998 by chris kulla in ue5-main branch]
Now, proxiess can register for needing an on added/removed from level call. If this is requested, they are added to a map, which maintains a list of primitives that need the add/remove call, per level.
The only component that currently utilizes this is the Landscape component. To facilitate it's needs, the generic flags used to determine if it should be visible have been removed from FPrimitiveSceneProxy, bRequiresVisibleLevelToRender bIsComponentLevelVisible, and replaced with bForceHidden. The landscape component will now set that flag under the same circumstances as before.
[REVIEW] [at]sebastien.lussier [at]Nick.Whiting [at]patrick.enfedaque
#jira UE-UE-114943
#lockdown nick.whiting
#ROBOMERGE-SOURCE: CL 16207473 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v796-16191650)
[CL 16207501 by brandon dawson in ue5-main branch]