Commit Graph

51 Commits

Author SHA1 Message Date
graham wihlidal
51e614d6fe Integrated AMD AGS 6.0.1. This has the stabilized ABI for RenderDoc w/ vendor extensions.
#rb yuriy.odonnell, andrew.lauritzen
[FYI] jason.stewart, brian.karis

#ROBOMERGE-SOURCE: CL 16527404 in //UE5/Private-Frosty/...
#ROBOMERGE-BOT: STARSHIP (Private-Frosty -> Main) (v826-16501804)

[CL 16527452 by graham wihlidal in ue5-main branch]
2021-06-01 21:32:41 -04:00
Sebastien Hillaire
6a64633888 Strata: renamed "shared normal" to "shared tangent basis"
#rb none
#fyi charles.derousiers

[CL 16358769 by Sebastien Hillaire in ue5-main branch]
2021-05-17 16:41:04 -04:00
chris kulla
d064996317 Improve path tracer performance with simplified materials
GPU Lightmass saw a performance regression after using more of the material model for translucent shadow support. Reclaim some performance by special casing more of the material logic for the subset that GPULM needs.

#rb Yujiang.Wang
#preflight 609ad275ab726700013a472c

[CL 16278525 by chris kulla in ue5-main branch]
2021-05-11 15:46:27 -04:00
Yuriy ODonnell
213d88c327 Groundwork for ray tracing performance visualization view modes
[CL 16242641 by Yuriy ODonnell in ue5-main branch]
2021-05-08 10:11:02 -04:00
Yuriy ODonnell
40aac04490 Implemented a ray tracing instance visualization mode
#rb Juan.Canada

[CL 16219115 by Yuriy ODonnell in ue5-main branch]
2021-05-06 05:58:19 -04:00
Andrew Davidson
3ddc3a4da3 Merge up from //UE5/Dev-LargeWorldCoordinates
#rb none

[CL 16211417 by Andrew Davidson in ue5-main branch]
2021-05-05 15:07:25 -04:00
aurel cordonnier
50944fd712 Merge UE5/RES @ 16162155 to UE5/Main
This represents UE4/Main @ 16130047 and Dev-PerfTest @ 16126156

[CL 16163576 by aurel cordonnier in ue5-main branch]
2021-04-29 19:32:06 -04:00
Sebastien Hillaire
467deab426 Added support for thin lighting model to Strata (a.k.a. TwoSided ligthing model).
First version, will be improved.

DMFP input is used to control the back face lighting transmittance using MFP representation.
It is not possible to combine the Thin lighting and SSS mode so SSS post process is forced disabled when Thin lighting model is encoutered

#rb charles.derousiers

[CL 16125446 by Sebastien Hillaire in ue5-main branch]
2021-04-27 09:42:01 -04:00
Sebastien Hillaire
f1a86a4bd8 Moved fuzz/cloth onto the Slab node.
#rb charles.derousiers

[CL 16071055 by Sebastien Hillaire in ue5-main branch]
2021-04-21 06:47:25 -04:00
chris kulla
ec009af823 Path Tracing setting cleanups
Add PPV flag to enable path traced emissive materials (on by default). These paths are not always needed if there are lots of tiny emitters, or if the scene was modelled with both emissive geometry and lights.

Change Skip* variables to Enable* to be more intuitive

Turn the sampler options into a proper enum since they were intended to be mutually exclusive

Tweak MaxPathIntensity logic to match Lumen and avoid color shifts

#rb Juan.Canada
#preflight 6079ba3dd400b70001571289

[CL 16036532 by chris kulla in ue5-main branch]
2021-04-16 13:23:59 -04:00
chris kulla
a42b669d3c Add light culling for path tracer
Split the light list info finite (point, spot, rect) and infinite (skydome, directional) sets. Build a 2d grid of which finite lights overlap particular regions. The grid is aligned to the bounding box of all lights and collapsed along the shortext axis so that memory usage scales quadratically with resolution instead of cubically. The light list per cell is currently pre-allocated up to a maximum count per cell (overflow is simply cut and lights are dropped as they were prior to this change). In most scenes I have tried so far this maximum is never reached with the current defaults of 256^2 resolution and 128 max lights per cluster.

#rb Patrick.Kelly
#preflight 60785d289e2d7a00016e3032

[CL 16022731 by chris kulla in ue5-main branch]
2021-04-15 12:22:28 -04:00
Yuriy ODonnell
ed3704b89a Reserve a ray mask bit for excluding objects from scene capture views
[CL 15867358 by Yuriy ODonnell in ue5-main branch]
2021-03-30 16:11:25 -04:00
chris kulla
ce17840274 Add option for Coherent path tracing
When enabled, shuffle pixel coordinate and share random number streams to improve the coherence of execution. This can provide large speedups (2x or more) on some scenes, and even modest speedups on complex scenes (30% or so). However it comes at the price of somewhat distracting artifacts at low sample counts that may be objectionable.

Leaving this disabled by default for now to gather feedback.

#rb Juan.Canada

[CL 15825443 by chris kulla in ue5-main branch]
2021-03-25 12:31:49 -04:00
chris kulla
8387c26d2b Texture support for Rect lights in the path tracer
This patch just adds the basic support for evaluating the texture, it is not taken into account in the importance sampling. Also, currently limited to 8 slots like the RT path until we get proper bindless support.

#rb Patrick.Kelly

[CL 15751254 by chris kulla in ue5-main branch]
2021-03-19 17:01:55 -04:00
Sebastien Hillaire
97dc02cdba Fixed Strata default thickness to be 0.1millimeter as discussed before.
#fyi charles.derousiers

[CL 15490727 by Sebastien Hillaire in ue5-main branch]
2021-02-22 12:41:28 -04:00
Sebastien Hillaire
0f480e8e08 Strata more optimisation and decoupling from GBuffer
- added a simple and fast clear path of the material buffer
- light and env light passes now reads AO and isStrataMaterial from the StrataHeader. No longer reads the classification or gbuffer data.
- Handle the max BSDF count case from the compiler.

Clear est 0.1ms at 1080p
SkyEnv pass cost 0.7->0.6ms et occupancy 60->70%

#rb Charles.deRousiers

[CL 15364191 by Sebastien Hillaire in ue5-main branch]
2021-02-09 04:08:35 -04:00
chris kulla
d76ed464f0 Refactor path tracer light struct to provide soft radius and source length information
No functionality change in this review, just getting the code ready for implementing these features

#rb Patrick.Kelly
#rb Juan.Canada

[CL 15339212 by chris kulla in ue5-main branch]
2021-02-05 12:58:02 -04:00
Sebastien Hillaire
1909d53c22 Strata data are now stored in 8x8 tiles and this prevent gpu being starved because data is not coming fast enough through the cache.
Default-no-strata => Strata before => Strata after simple tiled memory
Base pass: 	1.2 => 2.4 => 1.4 ms
Light pass: 	0.7 => 1.6 => 0.6 ms
SkyEnv:    	1.0 => 2.0 => 0.7 ms
Classification 	xx => 2ms => 0.15 ms

#rb Charles.deRousiers

[CL 15336377 by Sebastien Hillaire in ue5-main branch]
2021-02-05 05:07:37 -04:00
Yuriy ODonnell
cbe5df4214 Bump RAY_TRACING_SHADER_VERSION to force rebuild of any RT shaders that were accidentally cached while using an experimental shader compiler version.
[CL 15238189 by Yuriy ODonnell in ue5-main branch]
2021-01-28 10:45:47 -04:00
chris kulla
811a7c21d5 Refactor path tracer MIS calculations so shadow rays are handled consistently
Instead of re-using the indirect ray for shadow calculations with BxDF sampling, trace these rays with a dedicated loop so that shadow casting options can be hanlded consistently. This runs slowers but allows us to correctly handles options like non-shadow casting objects and materials.

Added support for non-shadow casting lights

Fixed an RDG validation error from the render target action

#rb Patrick.Kelly

[CL 15071687 by chris kulla in ue5-main branch]
2021-01-13 16:40:32 -04:00
Sebastien Hillaire
939aeb0269 Strata: unified diffuse, dielectric and conductor behind a common slab interface with Disney.
There will be naming update after (not done here to not bloat the review) and update for the metal/volume representation after.

#rb charles.derousiers

[CL 15065874 by Sebastien Hillaire in ue5-main branch]
2021-01-13 07:11:07 -04:00
chris kulla
262e891885 Add missing pragma once in new RayTracingTypes.h header file to fix unity builds
#rb trivial
#jira UE-105152

[CL 15000626 by chris kulla in ue5-main branch]
2021-01-06 13:42:45 -04:00
chris kulla
adf2c89a60 Change from SOA to AOS layout for path tracing lights
This was recommended by Nvidia in the RT path and also makes the code a bit cleaner. It also reduces the number of places that impose an upper limit on light count.

#rb Patrick.Kelly, Yujiang.Wang

[CL 14993128 by chris kulla in ue5-main branch]
2021-01-05 13:31:41 -04:00
Sebastien Hillaire
d66d562244 Strata support for single layer water.
A few renaming

#rb Charles.deRousiers

[CL 14951854 by Sebastien Hillaire in ue5-main branch]
2020-12-17 17:57:17 -04:00
chris kulla
aa96a58351 Add support for light falloff radius and exponent in the path tracer and Lightmass2
These controls are non-physical but still heavily used, so will help with comparing between the path tracer and lit modes

Also fixed Lightmass2 plugin from recently added IES support (although this path does not support IES just yet)

Merged the mobiility and type fields into flags to reduce memory usage a bit and moved the definitions that need to be shared between c++ and HLSL to a shared header file

#rb Patrick.Kelly

[CL 14922499 by chris kulla in ue5-main branch]
2020-12-14 17:37:23 -04:00