@pcarret
Apologies, I may have spoken too soon when I used the phrase, “your image will be production ready” if you simply wait for 1000 samples. Please allow me to explain further, as this applies to all reading.
Denoising is a yet-unsolved problem in computer graphics and is an area of active research for companies (like NVIDIA, OTOY, Autodesk, etc.), and academic institutions alike.
Therefore, the amount of available denoising technology and (even more helpful in my case) actual source code behind that technology is either behind a proprietary wall, too specific for a certain graphics card or single platform, not specific enough and too academic, or inside equations in someone’s university research dissertation (lol).
You can Google “How do I write a ray tracer?” and you may get some decent results and even videos on YouTube. But if you Google “How do I add denoising to an existing path tracer?” , the results will either be not specific enough for your project (as in someone’s doctoral thesis) or non existent altogether.
So my approach has been to take what is available for programs like PhotoShop and GIMP, and apply that basic image denoising tech to the path tracer - well understood and widely used 2d stuff like box blur, edge detection, and Gaussian filters - topics that you can actually learn from the internet because they’ve been around for decades.
The results are fairly good, especially on diffuse surfaces. I wish I could flip a switch and turn off denoising for our project just to demonstrate the awful distracting noise that you would see if we didn’t have denoising in place. So it’s not perfect, but it does make a huge difference- you’ll just have to trust me on that one.
That being said, there are scenes and lighting configurations where no amount of clever denoising (even proprietary professional grade) will get rid of the noise in a timely manner for an impatient end customer. This is because part of the responsibility falls on us, the content creators, to add lights and position objects in the scene in such a way that the denoiser can do its job. If you have a possible customer just dragging and dropping furniture into a path traced room with a single quad light on the ceiling (like our Cornell box), they will never be satisfied.
This is because although path tracing is a beautiful and elegant solution to photo realistic image generation, the algorithm can get tripped up on certain settings. If there are not enough lights, too many lights, not enough bounces in the ray tracer’s light bounce loop, etc, the noise just won’t go away. This why my Norwegian friend had to resort to post processing and PhotoShop style 2d image denoising techniques to clean up his million poly scenes with recessed, hidden lighting and sunlight pouring through the half shaded windows. I’ll share a link to his website in the next post so you all can see what kind of scenes he had to deal with while using the path tracer.
Lastly, the majority of the responsibility falls on my shoulders to give you guys and potentially your customers more rendering options. This is why programs like VRay, Blender Cycles, Arnold, Octane, etc. have so many darn buttons and sliders! Lol But seriously, I want to have features like a side panel GUI that let’s you change the lighting (number and power of lights) in the scene, as well as, update the number of light bounces and quality you need for your particular scene setup (MAX_BOUNCES, MAX_DIFFUSE_BOUNCES, Caustics on/off, etc). - think of any lightmap baker you might have used in the past, and you’ll have an idea. When my friend got access to these dials and settings, he was able to render scenes like yours, no problem. That being said, he did have to play around with the number of lights and light placement, light power, which is so important not just from a technical standpoint for our path tracer to succeed, but also from a visual and artistic one as well for the final consumer.
So, this was my really long way of saying yes, as the path tracer stands now, if you just place the book shelf model into the Cornell Box that only has 1 quad light on the ceiling, it will never be clean enough, and no amount of denoising will do the job. However, if we get the materials working correctly (I don’t even think the book shelf materials are being handled correctly inside my bounces loop as it stands now), the wooden textures up and running (still a w.i.p., lol), and maybe an HDRI in the background, or physical sky with room window to help light reach all the nooks and crannies of your small shelves, everything should be much better, denoising wise.
I’ll work on getting all these buttons and features into our renderer, it just takes time.
-Erich