Basic algorithm:
Estimate the pixel correspondences (motion vectors) to the previous frame where their local patches match the best using non-local means. Then history is combined with the current frame with a temporal low pass filter (exponential moving average & temporal bilaterial filtering). To better control the parameters, we use perception error DeltaE2000. Pixel difference larger than 10 dE is rejected for detail preserving.
How to enable:
Add `r.PathTracing.TemporalDenoiser 1` in MRQ console variables when path tracing denoising is enabled in postprocess volume.
#jira UE-136319
#rb chris.kulla
#preflight 62aa28dca40a4dc3a0412e2f
[CL 20675469 by Tiantian Xie in ue5-main branch]
- Reworked the packing of slab node to make eveyrhting fit. At the core level, diffuse, F0 and F90 are colored.
- Diffuse and F0 are stored as R7G7B6 to not bloatthe per pixel byte cost. They are dithered to hide the bit count without any loss of quality.
- F90 is stored as chroma+saturation because with force value=1 (HSV space) because this component need to be a high value anyway.
- Fixed related element: material conversion, vizualisation, classification, etc.
Next: implement energy conservation.
#rb Charles.deRousiers
[CL 16239606 by Sebastien Hillaire in ue5-main branch]