Commit Graph

340 Commits

Author SHA1 Message Date
florin pascu
0e7f38b405 Set Mobile FXAA to disabled when postprocessing is disabled
#jira UE-110113
#rb trivial
#preflight 606b2da8a595390001baeb4e

#ROBOMERGE-SOURCE: CL 15918953 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v786-15839533)

[CL 15921191 by florin pascu in ue5-main branch]
2021-04-05 15:04:53 -04:00
graham wihlidal
9948e93c6b Implemented a Nanite visualization overview, with a data-driven tile layout. This is similar to the gbuffer overview, except using a custom global shader instead of the post process material shader approach. Additionally, I managed to do this with just a single Nanite cull/raster pass. We already had a rasterizer permutation for retail vs. any visualization enabled, but it was a single ordinal mode. The rasterizer would do a 64b max and a 32b add. Was worried I needed arrays, multi-pass, strided output buffer, etc.. but then realized max is only used by raster mode, and add is only used by overdraw mode. I changed it all to a bitmask, run the rasterizer with that, and then multi-pass all the modes in screen space off the buffer.
Renamed Material Depth -> Material ID, and Hit Proxy Depth -> Hit Proxy ID

Moved Material ID into the Standard commands grouping, as it can be useful for content creators.

Made the editor hide all the Advanced commands by default, can make them available in the UX with r.Nanite.Visualize.Advanced now. Command line has full access to all of them, regardless of this setting.

Renamed r.Nanite.DebugSceneComposite to r.Nanite.Visualize.Composite, and changed the behavior for -1=default, 0=off, 1=on
Renamed r.Nanite.DebugSobelFilter to r.Nanite.Visualize.EdgeDetect and defaulted it on for content creator benefit.

Removed int4 VisualizeConfig member from Rasterizer UB, and added 32bit visualization mode mask instead.
Removed 32bit RasterStateReverseCull member from Rasterizer UB, and folded it into pre-existing 32bit RenderFlags

Renamed Nanite::FDebugVisualizeCS -> Nanite::FNaniteVisualizeCS
Renamed DebugVisualize.usf -> Visualize.usf

Made all visualizations composite against scene depth by default, except the overdraw mode.

Changed overdraw view mode to use ColorMapInferno from ColorMap.ush

#rb brian.karis
#fyi michal.valient, rune.stubbe

[CL 15828833 by graham wihlidal in ue5-main branch]
2021-03-25 15:02:12 -04:00
Daniel Wright
697b5b9cf6 Sparse, narrow band, streamed Mesh Signed Distance Fields
* SDFs are now generated, allocated from the atlas and uploaded in 8^3 bricks (7^3 unique data, half voxel padding).
 * Tracing must load the brick index from the indirection table, and only bricks near the surface are stored
 * 3 mips are now generated, with the lowest resolution always loaded and the other 2 streamed
 * SDFs are now G8 narrow band.  Lower resolution mips must be traversed when querying distance to nearest surface far away from the surface
 * The Distance Field Brick Atlas is now stored for each FScene and dynamically resized based on needs with a GPU memcopy
 * Brick atlas uses a 1d pooled allocator which has no fragmentation and greatly reduces packing waste over the 3d allocator
 * Added new indirection for Distance Field Asset data, so that only a single entry needs to be updated when a mip is streamed in or out in scenes with millions of instances
 * Compute shaders operating on distance field instances generate streaming requests, which are async read back to CPU, turned into IO requests, which are polled and when complete uploaded to atlases
 * Any mesh instance inside the Global SDF extent (200m) requests mip1, and at 50m requests mip2
 * Now using a batched compute scatter to upload to the distance field atlas instead of RHIUpdateTexture3d, to bypass alignment restrictions and per-upload overhead
 * Distance Field streaming uses an async task to move Memcpy and IO request overhead off of the Rendering Thread
 * Distance Field Visualization now computes a normal from the SDF gradient and does simple lighting to better visualize the scene representation
 * Increased r.DistanceFields.MaxPerMeshResolution from 128 to 512, to better represent large objects
 * Mesh SDF generation now uses an Embree point query to calculate closest unsigned distance, and then a much smaller set of rays to count backfaces for negative region determination, for a 11x speedup
 * Upgraded mesh utilities to Embree 3.12.2 to get point queries
 * Fixed wrong transform used for SDF normals in Lumen, causing non-uniformly scaled meshes to have incorrect Surface Cache interpolation
 * Fixed Static Mesh materials not getting PostLoaded before SDF build, causing their blend modes to be wrong for the build, which corrupts the DDC.  Also included those blend modes in the DDC key.

Original costs on 1080 GTX (full updates on everything and no screen traces)
10.60ms   UpdateGlobalDistanceField
3.62ms   LumenReflectiveTest.DirectionalLight_1 Shadowmap 1
1.73ms   VoxelizeCards Clipmaps=[0,1,2,3]
0.38ms   TraceCards 1 dispatch 1 groups
0.51ms   TraceCards 1 dispatch 1 groups

Sparse SDF costs
12.06ms   UpdateGlobalDistanceField
4.35ms   LumenReflectiveTest.DirectionalLight_1 Shadowmap 1
2.30ms   VoxelizeCards Clipmaps=[0,1,2,3]
0.69ms   TraceCards 1 dispatch 1 groups
0.77ms   TraceCards 1 dispatch 1 groups

Tested: TopazEntry PC, Reverb PC and PS5, EngineTests, QAGame, Rift, Frosty P_Construct_WP, FortGPUTestbed

#rb Krzysztof.Narkowicz

#ROBOMERGE-OWNER: Daniel.Wright
#ROBOMERGE-AUTHOR: daniel.wright
#ROBOMERGE-SOURCE: CL 15784493 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v783-15756269)
#ROBOMERGE-CONFLICT from-shelf

[CL 15790658 by Daniel Wright in ue5-main branch]
2021-03-23 22:40:05 -04:00
graham wihlidal
0ed0da2167 Move Nanite visualization into post processing pass creation to occur after tonemap and before shader print.
#rb brian.karis

[CL 15789949 by graham wihlidal in ue5-main branch]
2021-03-23 21:46:40 -04:00
dmitriy dyomin
8e508176a9 Fixed: auto-instancing on mobile
#ROBOMERGE-OWNER: dmitriy.dyomin
#ROBOMERGE-AUTHOR: dmitriy.dyomin
#ROBOMERGE-SOURCE: CL 15757659 in //UE5/Release-5.0-EarlyAccess/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-EarlyAccess -> Main) (v783-15756269)
#ROBOMERGE-CONFLICT from-shelf

[CL 15772431 by dmitriy dyomin in ue5-main branch]
2021-03-22 22:21:46 -04:00
Marc Audy
8f73cd7fa9 Merge UE5/Release-Engine-Staging @ 15630841 to UE5/Main
This represents UE4/Main @ 15601601

[CL 15631170 by Marc Audy in ue5-main branch]
2021-03-05 19:27:14 -04:00
Guillaume Abadie
4bbf0cf5f0 Fixes ensure due to temporal upsampling when using ray tracing debugging view mode
#rb none

[CL 15624546 by Guillaume Abadie in ue5-main branch]
2021-03-05 11:23:39 -04:00
Wei Liu
c420f31b4b Add a console variable for setting mobile anti-aliasing method, remove the r.MobileMSAA and get the MSAA sample count from r.MSAACount.
#jira none

#rb Dmitriy.Dyomin, Jack.Porter, Mi.Wang

[CL 15514216 by Wei Liu in ue5-main branch]
2021-02-24 11:02:45 -04:00
Wei Liu
e1dbc67499 Support Desktop TAA with the mobile renderer( reimplement in UE5)
#jira none

#rb Dmitriy.Dyomin, Jack.Porter, Florin.Pascu, Mi.Wang

[CL 15466697 by Wei Liu in ue5-main branch]
2021-02-18 21:11:17 -04:00
Guillaume Abadie
30b9f0ba9b Automatically use r.SSS.Quality=1 recombine when using Gen5 TAA
#rb none

[CL 15364741 by Guillaume Abadie in ue5-main branch]
2021-02-09 06:30:16 -04:00
Marc Audy
cac1fe0019 Merge UE5/Release-Engine-Staging @ CL# 15299266 to UE5/Main
This represents UE4/Main @ CL# 15277572

[CL 15299962 by Marc Audy in ue5-main branch]
2021-02-03 14:57:28 -04:00
Wei Liu
8dfe62c2b4 Port all mobile eye-adaptation resources to RDG.
#jira none

#rb Dmitriy.Dyomin, Jack.Porter, Mi.Wang, Zachary.Bethel

[CL 15278893 by Wei Liu in ue5-main branch]
2021-02-02 04:25:26 -04:00
rod bogart
dfdb63661d Remove Legacy tonemapper
#jira UE-106206
#rb brian.karis,michal.valient

[CL 15275511 by rod bogart in ue5-main branch]
2021-02-01 17:58:35 -04:00
Guillaume Abadie
fb5ab4adc9 Adds details in TAA draw events about Gen4 or Gen5
#rb none

[CL 15237648 by Guillaume Abadie in ue5-main branch]
2021-01-28 07:48:23 -04:00
graham wihlidal
862e861803 Added instance culling manager and context (disabled, and without shader files), and tons of hooks all over the renderer in preparation for upcoming GPU culling work.
#author ola.olsson
#rb graham.wihlidal
#fyi brian.karis, rune.stubbe

[CL 15082481 by graham wihlidal in ue5-main branch]
2021-01-14 05:23:34 -04:00
Marc Audy
ada7c144fa Merge //UE5/Release-Engine-Staging @14903491 to //UE5/Main
[CL 14906022 by Marc Audy in ue5-main branch]
2020-12-11 14:21:20 -04:00
Marc Audy
a7f9391231 Merge UE5/Release-Engine-Staging @ 14811410 to UE5/Main
This represents UE4/Main @ 14768117

For ReleaseObjectVersion.h
#lockdown Marcus.Wassmer

[CL 14811440 by Marc Audy in ue5-main branch]
2020-11-24 18:42:39 -04:00
zach bethel
7386219132 Refactored plugin hooks to use RDG. Deprecated RHICmdList versions of desktop scene textures uniform buffer.
#fyi yujiang.wang, steve.smith, wei.liu

[CL 14735677 by zach bethel in ue5-main branch]
2020-11-12 13:39:39 -04:00
zach bethel
e4f467569d Removed scene render target context snapshot system.
#rb arne.schober

[CL 14615156 by zach bethel in ue5-main branch]
2020-10-29 16:32:16 -04:00
zach bethel
05d33be488 Removal of the deprecated rendering composition graph from the engine.
#rb christopher.waters
#fyi charles.derousiers, steve.smith
#jira none

[CL 14523947 by zach bethel in ue5-main branch]
2020-10-20 11:36:46 -04:00
zach bethel
53bdcb2ff4 Removed deprecated LPV feature from the engine.
#rb krzysztof.narkowicz, andrew.lauritzen, daniel.wright
#jira none

[CL 14516783 by zach bethel in ue5-main branch]
2020-10-19 15:06:44 -04:00
Marcus Wassmer
3b81cf8201 Merging using //UE5/Main_to_//UE5/Release-Engine-Staging @14384769
autoresolved files
#rb none

[CL 14384911 by Marcus Wassmer in ue5-main branch]
2020-09-24 00:43:27 -04:00
roey borsteinas
f41d79e4f5 Visualize Level Instance editing
Applies a post processing effect to all actors which do not belong to the currently editing LevelInstance. Can be toggled with the Viewport show options under visualization.

#rb patrick.enfedaque graham.wihlidal jeremy.moore
#jira none

#ROBOMERGE-OWNER: roey.borsteinas
#ROBOMERGE-AUTHOR: roey.borsteinas
#ROBOMERGE-SOURCE: CL 14322972 in //UE5/Release-5.0-M2/...
#ROBOMERGE-BOT: STARSHIP (Release-5.0-M2 -> Main) (v738-14305781)

[CL 14323217 by roey borsteinas in ue5-main branch]
2020-09-15 17:20:22 -04:00
Marc Audy
7379fa99c5 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14229157
[CL 14233282 by Marc Audy in ue5-main branch]
2020-09-01 14:07:48 -04:00
Guillaume Abadie
f4ef12bd70 Fixes redondant declaration of CVarTAAAlgorithm
#rb none
#jira UE-97404

[CL 14172648 by Guillaume Abadie in ue5-main branch]
2020-08-24 13:07:58 -04:00