erichlof/THREE.js-PathTracing-Renderer

[FR] Would be nice to see some denoising strategies implemented

trsh opened this issue · 2 comments

trsh commented
[FR] Would be nice to see some denoising strategies implemented

Hello @trsh
Yes I agree! ;-)

I have been wanting to implement de-noising much like NVidia did with path traced Quake II recently:
q2vkpt tech
And the research paper that this project was based upon.

However, just glancing at some source code (what little is out there for public consumption), it is way more non-trivial than I had imagined. I was originally thinking in terms of simple Photoshop-type box and Gaussian filters, but it goes way beyond that with complex edge detection and also ventures into the temporal domain (temporal reprojection, etc.).

There are no quick and easy 'getting started' tutorials about this subject either (like there are for simple old-fashioned ray tracing), as it is an active area of computer scientific research at universities and professional companies, and is considered the Holy Grail of real-time rendering - noise free global illumination at 60 fps.

My only concern about going down this road and trying to get it to work, is that since this project runs on any GPU (commodity even) with Webgl in the browser, that the complex math and multiple texel lookups (which I'm sure are necessary for filtering and edge-detection) will slow my entire renderer down below 30 fps and will no longer be supported on mobile devices in real-time.

But if I find some tutorials or example projects that make compact, clever use of de-noising, I will definitely give it my best!

-Erich

trsh commented

Cool