- Move VSM parameters into a single uniform buffer; required for base pass rendering.
- SRVs are initialized to dummy data until they are computed during the frame and subsequently updated before any VSM sampling.
- Make names and usage more consistent with other UB bindings in mesh passes
- Direct injection of VSM into translucent volume and fog
- Support VSM sampling in forward lighting shaders
- Enabled and bound currently for translucent forward and single pass water meshes
- Support VSM sampling in sky atmosphere and cloud rendering
- NOTE: Sky atmosphere LUT pass currently executes before BasePass and ShadowDepths so it will not sample proper data and throw a warning. Moving passes around to address this will come in a future commit.
#rb Brian.Karis, Ola.Olsson, Sebastien.Hillaire, Zachary.Bethel
#ROBOMERGE-OWNER: andrew.lauritzen
#ROBOMERGE-AUTHOR: andrew.lauritzen
#ROBOMERGE-SOURCE: CL 15649858 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v779-15635321)
#ROBOMERGE-CONFLICT from-shelf
[CL 15650486 by andrew lauritzen in ue5-main branch]
The path tracer's representation of the skylight texture is now cached across frames. Code such as the realtime capture system or the skylight cubemap management only need to worry avoid invalidating the handle to the texture if it needs to change. The path tracing code will automatically rebuild these textures when they are needed. I also added a cvar (off by default) to force these textures to always be rebuilt to make it easier to benchmark the performance of this step.
Implement MIS Compensation for Skylight importance tables. When MIS is being used, we can tweak the skylight pdf since we know the domain is already well covered by BxDF sampling.
#rb Patrick.Kelly
[CL 15563200 by chris kulla in ue5-main branch]
- Moved the primitive instance registration such that we don't end up with added primitives that have no instance index at GPU-Scene update time
- added calls to InstanceCullingManager and disabled implementation.
- GPU scene can now exists without a FScene instance
#rb graham.wihlidal
#rnx
[CL 15106518 by Ola Olsson in ue5-main branch]
- Added step after dynamic primitives are gathered to allocate a range in GPU scene for the dynamic primitives.
- Moved more GPU-Scene functionality to member functions to clean up references to internal data
- Removed the PrimitiveShaderDataBuffer/Texture from FSceneViewState
- Removed OneFramePrimitiveShaderDataBuffer/Texture from FViewInfo
- Encapsulated the collection of dynamic primitive data for upload to avoid uploading twice and prepare for parallel upload.
#rb Krzysztof.Narkowicz,graham.wihlidal
[CL 14785776 by Ola Olsson in ue5-main branch]