Use actor label for light identification/selection in editor; fall back on component name (UUID) temporarily until this data is made available outside the editor as well
Collect debug data in RayState for SMRT and return the last valid sample data
- Alternative is to always generate debug data based on just a single VSM sample even when SMRT is enabled, but it's useful to have a debug output path for the true SMRT data, even if a bit more complex
Move some common visualization utilities to /Visualization.ush
Implement but disable backface culling for shadow evaluation pending change that handles various SHADINGMODEL's properly
#rb graham.wihlidal, ola.olsson
#ROBOMERGE-SOURCE: CL 16407102 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v804-16311228)
[CL 16412421 by andrew lauritzen in ue5-main branch]
No more need for writing out the "signal" texture info, so reduce that to single F32 for shadow factor
No need to return HitDistance as far up the stack in the shaders
Remove VSM defines and permutations from screen space denoiser
#rb guillaume.abadie
#lock nick.whiting
#ROBOMERGE-OWNER: andrew.lauritzen
#ROBOMERGE-AUTHOR: andrew.lauritzen
#ROBOMERGE-SOURCE: CL 16117127 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)
#ROBOMERGE-CONFLICT from-shelf
[CL 16117874 by andrew lauritzen in ue5-main branch]
Rename parameter to "r.Shadow.Virtual.NormalBias" to better represent its unit-less value and give a reasonable default value.
#lockdown nick.whiting
#rb brian.karis, graham.wihlidal
#ROBOMERGE-SOURCE: CL 16097675 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v789-15992632)
[CL 16097704 by andrew lauritzen in ue5-main branch]
- Adaptive ray counts for SMRT now work even with pass per light
- Removes a few divergences between the logic in the two paths
Remove debug projection stuff for now; will reimplement with a separate UAV write later
Remove temporal filtering for denoiser (it was broken and would need to be implemented slightly differently with the new path anyways)
Split cvar to allow separate denoiser toggle for directional (default on) and local (default off) lights
Enable SMRT for local lights and VSM caching by default
#rb brian.karis
#ROBOMERGE-OWNER: andrew.lauritzen
#ROBOMERGE-AUTHOR: andrew.lauritzen
#ROBOMERGE-SOURCE: CL 15707229 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v781-15675533)
#ROBOMERGE-CONFLICT from-shelf
[CL 15708180 by andrew lauritzen in ue5-main branch]
- 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]
Disable temporal denoiser pass until crash bug is fixed.
#rb andrew.lauritzen
#ROBOMERGE-SOURCE: CL 15496333 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
[CL 15496340 by brian karis in ue5-main branch]
- Fix optimal plane bias with clipmap LOD fallback
- Clean up and optimize some of the clipmap level offset math
- Rename some fields to make the resuse between clipmaps/mips clear
#rb brian.karis, ola.olsson
#ROBOMERGE-SOURCE: CL 15466663 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
[CL 15466676 by andrew lauritzen in ue5-main branch]
- Implement cube map SMRT using iteration across two faces. While a ray can technically span 3, no significant corner-related artifacts were observed.
- Rafactor SMRT loop out to a macro/include-based quasi "template" and reimplement SMRT for all light types in terms of it
- Few bug fixes and improvements to occluder distance approximation and similar
#rb brian.karis, ola.olsson
#ROBOMERGE-SOURCE: CL 15341168 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v771-15082668)
[CL 15341176 by andrew lauritzen in ue5-main branch]
Major SMRT optimization. Adaptive 7 rays per light with rough penumbra detection. Quality appears to surpass 1rpp with denoising.
#rb andrew.lauritzen
[CL 15190972 by Brian Karis in ue5-main branch]
- Change VSM page table to single packed uint with a field to allow single-lookup to find any mapped MIP
- Page table lookups go through helper function to encode/decode
- Remove some unused shadow emit code
#rb brian.karis
#fyi ola.olsson
[CL 15160590 by andrew lauritzen in ue5-main branch]