Commit Graph

232 Commits

Author SHA1 Message Date
guillaume abadie
4e42a66ca9 Allows TSR to upscale separate translucency independently from input resolution
This also implements r.Translucency.ScreenPercentage.Basis to experiment controling the translucency resolution independently from the primary screen percentage

#rb none
#jira UE-152560
#preflight 6294fbc4e61254772f5834a6

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 20432059 via CL 20432067 via CL 20432069
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20434142 by guillaume abadie in ue5-main branch]
2022-05-31 01:21:02 -04:00
Guillaume Abadie
4d350f00a2 Removes accidental log spam in translucency
#rb trivial
#jira none
#preflight trivial

[CL 20377535 by Guillaume Abadie in ue5-main branch]
2022-05-26 06:43:34 -04:00
Guillaume Abadie
46a784ccaa Rewrites dynamic translucency resolution on top of the DynamicRenderScaling API
#rb none
#jira UE-152561
#preflight 628f49d99d313ae1c7ddf9a8

[CL 20377304 by Guillaume Abadie in ue5-main branch]
2022-05-26 05:54:01 -04:00
zach bethel
3cc87760bd Removed cases of AddCopyToResolveTargetPass which either weren't necessary or weren't performing multisample resolves.
#preflight 628270aa046b81bf93c13e50

[CL 20226032 by zach bethel in ue5-main branch]
2022-05-16 12:09:51 -04:00
john huelin
95c1680b6e Fix DrawCallCount per pass not working when multithreaded RHI command recording is enabled.
[REVIEW]
#rnx

#ROBOMERGE-OWNER: john.huelin
#ROBOMERGE-AUTHOR: john.huelin
#ROBOMERGE-SOURCE: CL 20105654 via CL 20105671 via CL 20107113 via CL 20107146
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20110543 by john huelin in ue5-main branch]
2022-05-09 16:35:01 -04:00
Arciel Rekman
3dd36a1d5f Share translucency light volume textures between both views of a stereo pair (UE-148569).
#rb Rob.Srinivasiah
#jira UE-148569
#preflight 627143035e6ce673f442a3dc
#review @Robert.Srinivasiah

[CL 20026126 by Arciel Rekman in ue5-main branch]
2022-05-03 11:15:00 -04:00
guillaume abadie
0e8d8a4792 Uses a Texture2DArray for TSR history to saves on number of UAVs
#rb none
#preflight 62711d64e16e280be60a0286

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 20024040 via CL 20024043 via CL 20024050
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20024826 by guillaume abadie in ue5-main branch]
2022-05-03 09:58:40 -04:00
jason hoerner
af48ea5a98 UE5_MAIN: Multi-view-family scene renderer refactor, part 2. Move FSceneTextures singleton out of RDG blackboard and FSceneTexturesConfig global variable singleton, into FViewFamilyInfo. This is necessary to allow multiple view families to render in a single render graph and a single scene renderer call.
* Existing calls to CreateSceneTextureShaderParameters and similar functions use "GetSceneTexturesChecked", which allows for the possibility that they are reached in a code path where scene textures haven't been initialized, and nullptr is returned instead of asserting.  The shader parameter setup functions then fill in dummy defaults for that case.  The goal was to precisely match the original behavior, which queried the RDG blackboard, and gracefully handled null if scene textures weren't there.  This definitely appears to occur in FNiagaraGpuComputeDispatch::ProcessPendingTicksFlush, which can be called with a dummy scene with no scene textures.  In the future, I may change this so dummy defaults are filled in for FSceneTextures at construction time, so the structure is never in an uninitialized state, but I would like to set up a test case for the Niagara code path before doing that, and the checks aren't harmful in the meantime.
* I marked as deprecated global functions which query values from FSceneTexturesConfig, but they'll still work with the caveat that if you use multi-view-family rendering, the results will be indeterminate (whatever view family rendered last).  There was only one case outside the scene renderer that accessed the globals (depth clear value), which I removed, noting that there is nowhere in the code where we modify the depth clear value from its global default.  I would like to permanently deprecate or remove these at some point.  Display Cluster is the only code that's currently using the multi-view-family code path, and as a new (still incomplete) feature, third party code can't be using it, and won't be affected.

#jira NONE
#rb chris.kulla zach.bethel mihnea.balta
#preflight 6261aca76119a1a496bd2644

[CL 19873983 by jason hoerner in ue5-main branch]
2022-04-22 17:33:02 -04:00
Jules Blok
e3374bb683 Fix viewports being handled incorrectly if there are multiple ISR pairs.
InstancedStereoWidth is already a view property, but is currently simply set to the widest pair.
This CL properly computes InstancedStereoWidth for each pair individually.

#rb arciel.rekman
#jira UE-149773
#preflight 62608172dd47b4ad218b7584
#preflight 626094ba886befa9a5d09c6e

[CL 19841467 by Jules Blok in ue5-main branch]
2022-04-20 19:34:24 -04:00
jason hoerner
b19bb6be2f UE5_MAIN: Multi-view-family scene renderer refactor, part 1. Major structural change to allow scene renderer to accept multiple view families, with otherwise negligible changes in internal behavior.
* 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]
2022-04-19 14:45:26 -04:00
zach bethel
a00b40ad3b Deprecated GetRenderTargetItem() from IPooledRenderTarget.
#preflight 624ddb30090236773a1a83e0
#rb luke.thatcher

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 19655641 via CL 19655653 via CL 19655661
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v938-19570697)

[CL 19657582 by zach bethel in ue5-main branch]
2022-04-06 18:24:24 -04:00
Charles deRousiers
61cf50b66f Change Strata binding buffer function args to take view instead of the explicit scene data.
#rb none
#jira none
#preflight 6246ee2a292f228e0914eed2
#fyi sebastien.hillaire

[CL 19586823 by Charles deRousiers in ue5-main branch]
2022-04-01 08:35:55 -04:00
Charles deRousiers
0fd197a89e Reenable OIT parameters binding for translucent pass.
#rb none
#jira none
#preflight 623c144f0820efd094b50f65

[CL 19492526 by Charles deRousiers in ue5-main branch]
2022-03-24 03:04:29 -04:00
Charles deRousiers
2d1c017ed9 Disable OIT parametrs to fix shader compilation issue.
#rb none
#jira none
#preflight skip

[CL 19484187 by Charles deRousiers in ue5-main branch]
2022-03-23 15:59:07 -04:00
Charles deRousiers
80fbef9ccb Reenable OIT parameters binding.
#rb none
#jira none
#preflight 623b469ec73745c600bca3d4

[CL 19481267 by Charles deRousiers in ue5-main branch]
2022-03-23 13:03:07 -04:00
Charles deRousiers
c3af11568e Temporary fix for platform not suporting ROV resource type.
#rb none
#jira none
#preflight skip

[CL 19471476 by Charles deRousiers in ue5-main branch]
2022-03-22 16:14:01 -04:00
charles derousiers
0195d6b7aa Add OIT per-pixel sorting support for translucent material
This technique is guarded with by a projected settings. It is currently only supported on PC Dx12. This is the initial step for fine grain/per-pixel sorting.

#rb sebastien.hillaire
#jira none
#preflight 623a1884bc1cf2803867d8f8

[CL 19470340 by charles derousiers in ue5-main branch]
2022-03-22 15:06:48 -04:00
daniel wright
cefd739201 Lumen Front Layer Translucency Reflections - provides mirror reflections on translucent surfaces
* When enabled, translucent surfaces are rasterized again to create a minimal translucency GBuffer, using depth writes and tests to only capture the frontmost layer
 * Lumen Reflections are run on the translucency GBuffer, without denoising to reduce overhead (forced to mirror)
 * Finally the translucent base pass depth-tests against the frontmost layer depth and applies the high quality reflections.  Subsequent layers continue to use the Radiance Cache based reflections.
 * Disabled by default due the constant overheads when any translucent surface is on-screen
 * New Post Process Volume and Project setting to enable

#ROBOMERGE-AUTHOR: daniel.wright
#ROBOMERGE-SOURCE: CL 19387917 via CL 19387985
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v926-19321884)

[CL 19391295 by daniel wright in ue5-main branch]
2022-03-15 15:08:58 -04:00
jules blok
bce4a3bf0b Fix translucent rendering result not being composited in the scene color when ISR is enabled.
This was caused by an empty TranslucencyViewResourcesMap in the post-processor. To fix it we allow more of the code path to execute before we skip rendering the second view.

#jira UE-143813
#preflight 621d434946449008c9b59787
#rb arciel.rekman
#rb guillaume.abadie

#ROBOMERGE-AUTHOR: jules.blok
#ROBOMERGE-SOURCE: CL 19205877 in //UE5/Release-5.0/... via CL 19209437
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19215613 by jules blok in ue5-main branch]
2022-03-01 21:33:42 -05:00
Sebastien Hillaire
cc2310df4d Fixed Translucent material sampling stencil buffer not working when r.SeparateTranslucencyScreenPercentage<100.
It works but it does not account for alliasing. It is literally impossible to know if users want to expend stencil bit erode.

#rb none
#preflight 621e35fff1206ae3ea5a66a6

[CL 19198466 by Sebastien Hillaire in ue5-main branch]
2022-03-01 10:32:31 -05:00
daniel wright
b4afcabf5c Fixed Base Pass Skylight being disabled by the Lumen project setting even when Lumen is disabled by scalabilty or forward shading
Fixed Ray Tracing Scene overhead when the project is set to use Lumen GI but Lumen is disabled by scalabilty
Grey out Dynamic GI Method and Reflection Method when the project uses Forward Shading
#preflight 6216fce37a51a1466493323f
#jira UE-141840
#rb Krzysztof.Narkowicz
#lockdown Juan.Canada

#ROBOMERGE-AUTHOR: daniel.wright
#ROBOMERGE-SOURCE: CL 19120562 in //UE5/Release-5.0/... via CL 19121408
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v921-19075845)

[CL 19153987 by daniel wright in ue5-main branch]
2022-02-25 14:59:42 -05:00
guillaume abadie
7418563620 Fixes alpha channel through post processing when translucent object is in the scene
#rb trivial
#jira UE-142126
#preflight 620a3d64015ab8f37a42ad23

#ROBOMERGE-AUTHOR: guillaume.abadie
#ROBOMERGE-SOURCE: CL 18977673 in //UE5/Release-5.0/... via CL 18977729 via CL 18977796
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v917-18934589)

[CL 18977799 by guillaume abadie in ue5-main branch]
2022-02-14 07:30:53 -05:00
Sebastien Hillaire
549446322b Translucent post dof texture creation is now using shared code for translucent and light shaft rendeirng.
#preflight https://horde.devtools.epicgames.com/job/61fd734adb09cf39bef56b85
#rb none

[CL 18869101 by Sebastien Hillaire in ue5-main branch]
2022-02-04 14:05:18 -05:00
andrew davidson
cac76b118e Fix FVector2D variant casts - Renderer
Submitted on behalf of fred.kimberley
#rb andy.davidson
#preflight 61f8700e41414fb013dd4002

#ROBOMERGE-AUTHOR: andrew.davidson
#ROBOMERGE-SOURCE: CL 18801433 in //UE5/Release-5.0/... via CL 18802090 via CL 18821511
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18821594 by andrew davidson in ue5-main branch]
2022-02-02 01:43:41 -05:00
zach bethel
9996233f7a Removed unused legacy MSAA multi-texture support from IPooledRenderTarget.
- Deprecated legacy members from FPooledRenderTargetDesc.
 - Deprecated ETextureRenderTarget and removed from RDG.
 - TargetableTexture always equals ShaderResourceTexture.
 - Simplified render target pool FindFreeElement.
 - Create pooled buffers and textures with a known state.

#rb graham.wihlidal
#preflight 61f8488568795b2f45852274

#ROBOMERGE-AUTHOR: zach.bethel
#ROBOMERGE-SOURCE: CL 18796880 in //UE5/Release-5.0/... via CL 18797840 via CL 18799070
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v908-18788545)

[CL 18799188 by zach bethel in ue5-main branch]
2022-01-31 17:22:31 -05:00