NVIDIAGameWorks / RayTracingDenoiser

NVIDIA Ray Tracing Denoiser
Other
494 stars 44 forks source link

[ReLAX] Is there any way to turn PSR off for specular reflection? #78

Closed ZeusYang closed 1 month ago

ZeusYang commented 1 month ago

Hi, I tried to integrated NRD as ray-tracing denoiser of our project. Everything looks good except the weird denoised result when it comes to denosing specular reflection. The wrong result becomes more obvious for pure mirror area. I guess it might be a problem of PSR or stuff like that. Hence is there any way to turn PSR off for specular reflection? The integrated version is 4.8.2 by the way.

[The video has been deleted]

dzhdanNV commented 1 month ago

Hence is there any way to turn PSR off for specular reflection?

NRD doesn't know anything about PSR. PSR is a part of the application, not denoising (for example, NRD sample offers PSR if checkerboarding is off).

P.S. The integration looks incorrect, because MV visualization (bottom-right corner in your case) is yellow when the scene is static, but should have been black. Please, refer to the NRD sample with enabled NRD validation overlay.

ZeusYang commented 1 month ago

Hence is there any way to turn PSR off for specular reflection?

NRD doesn't know anything about PSR. PSR is a part of the application, not denoising (for example, NRD sample offers PSR if checkerboarding is off).

P.S. The integration looks incorrect, because MV visualization (bottom-right corner in your case) is yellow when the scene is static, but should have been black. Please, refer to the NRD sample with enabled NRD validation overlay.

I‘ve also tried ReBLUR and also got the wired result as camera rotating. Here's the video: [The video has been deleted]

I didn't suspect the motion vector because the diffuse denoised part is quiet normal as it should be. I'll further check out the motion vector.

dzhdanNV commented 1 month ago

MV debug visualization shows the difference between "provided" motion via IN_MV texture and "expected" motion derived from current / previous matrices. Static objects must be black on this visualization (the camera can move or be stationary). In your case there is no a match.

ZeusYang commented 1 month ago

MV debug visualization shows the difference between "provided" motion via IN_MV texture and "expected" motion derived from current / previous matrices. Static objects must be black on this visualization (the camera can move or be stationary). In your case there is no a match.

Thank you so much!! I'll check that out.

ZeusYang commented 1 month ago

I finally figured out that I transferred the wrong row-major matrices to denoiser. The diffuse result looks pretty normal which got me stuck in NRD integration for a while at the very first debugging. Really appreciate your tips. Thank you!