Previous Post

The war on noise continued

Next Post
The war on noise continued
1 / 5
DESCRIPTION

I have some leftover test and noise fighting shots for the fantasy (not to spoil anything) while I was working on noise reduction approaches, so here's a small tale for those who enjoy this type of crap.

Upstairs are comparison shots with some tricks + ML-based removal. I allowed both renders to run for 3 minutes and 20 seconds, one at 2K and one at 4K.

The shorter I can make the render times without incurring too much noise (determined perceptually by me), the more renders I can put out, the more varied poses and glints and other gestures I can factor in. This project was born on a 3080 which took 12.5 minutes to have reasonable and still noisy convergence. It took upward of 100 hours of render time to just deliver a single update, which was kinda short because, well, it was.

A huge chunk of my time went on writing scripts on optimizing scene textures, geometry subdivision levels (stressing the RT fixed function hardware) and other things. Since raytracing can hit anything, you need to have LOD0 textures of everything in memory, which runs up the 10 GB wall really quickly.

And there's also the bandwidth issue, as fast as GDDR6X was/is, Nvidia gimped it wrt 3090 because they really didn't want to give us those extra bandwidth bits and 2 GBs more (filling up the one side of the PCB)... Guess they were worried about the "value proposition" of the 3090 (which was ass at best).

When you get bogged down accessing 8K or 4K textures, the GPU does all sorts of things to mask this latency and it's really good at it, but at some point, the entire thing gets bogged down in it. And iterations slow down, convergence slows down, enter noise.

A before image comparable to the two on top in full resolution. You can also see how noise removal can be a bit aggressive at times and needs to be managed.

Now that I have a pair of 3090s (because Daz people can't be arsed to integrate iRay 2023 to have a single 4090 use more than 50% of its juice), I've begun to work harder on optimizing render times further by limiting the maximum number of paths by running special materials to determine the minimum path count where it doesn't break down (7-8 is usually enough here).

I've also been outputting test images of a scene without tonemapping to run queries over it to determine nominal luminance (I guess you could eyeball it by inputting a huge value and cutting it down until fireflies go away).

Here you can see how it did its job, the out of focus stuff is smooth, but it didn't brutalize the bartender.

Now I'm at a point where I can get fairly good convergence on stuff that is in focus, but I've noticed that everything outside of the focal planes tends to be grainy. There's a certain realism to it with high ISO scene equivalents, but noise doesn't discriminate wrt focus so I had to make it go away.

So I started experimenting with AI solutions, both existing and frankensteining my own models by letting renders partially and fully complete to guide it to what I want it to do. It's not 100% effective, but the top two images are with said out of focus blur noise removed.

I am not sure when I'll be able to apply it generically on a batch level without messing up in focus stuff by removing detail, but I am getting there. But for now, I can manually run over the most egregious renders.

Bindr PATREON 19 favs
VIEWS1
FILES5 files
POSTEDAug 16, 2023
ARCHIVEDAug 16, 2023