Improving Denoising Using Post Render "Geometry Map"

So denoising works by linearly scanning an image and trying to average the colors together as well as other sampling techniques using pixel grids etc. Okay keep that in mind.

Now the problem with denoising as you know is that the algorithm doesn’t take into account the geometry that actually group colors and edges of, let’s call them ZONES of color.

So what I want to propose is a new technique to use a “geometry map” (feel free to think of a better name for it) to help the denoising group pixel into logical group of color averaging.

So take a house with a window that’s blue. The post geometry map could help isolate normals into groups to help the denoising keep the pixels grouped more logically.

In terms of transparent normals, a Z-INDEX of surfaces visible through the normal could simple render in order of priority.

1 Like

The denoiser already uses normals and albedo passes for this kind of thing. While it may be tempting to try to separate individual objects/geometry and denoise each on their own, separating a render into such zones is not necessarily better than a more loose identification of similar pixels. Because discontinuities exist within objects, and continuities exist across objects.

You can also get much better results by denoising direct and indirect light separately. This is because indirect pass contains most of the noise and has much smaller brightness range. You can even get away without denoising the direct pass at all (also avoiding OID blurriness). It would be great to have an option in Cycles to output exactly these two passes).

Raw direct and indirect:

Node setup:

Also: Real Time Path Tracing and Denoising in Quake II RTX - YouTube

Also: Deep Compositional Denoising for High-quality Monte Carlo Rendering