Community
Arnold for 3ds Max Forum
Rendering with Arnold in 3ds Max using the MaxtoA plug-in.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Noice.exe cuts a lot of serious rendering details (or alterate them)

27 REPLIES 27
SOLVED
Reply
Message 1 of 28
pproestos
1719 Views, 27 Replies

Noice.exe cuts a lot of serious rendering details (or alterate them)

Is there any better option to denoise

an image so to not loose crucial details?

I am talking about the case in wich we

have glass material and a lot of textures and

lighting reflected and refracted through it.

On the picture I attach, the right part is the

denoised image.


My render settings:

Resolution 1200x1200

Camera samples=4

Diffuse samples=3 & Ray Depth=3

Specular samples=3 & Ray Depth=2

Transmission samples=3 & Ray Depth=10


My denoised settings:

Variance 0.5

Pixel Search Radius 15

Pixel Patch Radius 3


thx for any advice...


6894-denoised.jpg

Tags (1)
Labels (1)
27 REPLIES 27
Message 2 of 28
aaronfross
in reply to: pproestos

Noice does not seem to work well with coherent specular reflections. I have not been able to get satisfactory results with glass surfaces.

It does work well with flat diffuse surfaces. As you've demonstrated, it's not so great with highly detailed textures. You need to find the tradeoff between initial sampling quality and denoising. Noice is great when the amount of noise in the image is fairly low.

I recommend you look into Adaptive Sampling, it's a better option in the case of the image you posted. I've found it can reduce render times by ~20% without mangling details. However, I don't recommend the settings described in the Arnold docs. Max Samples of 20 is insane and totally unnecessary. I usually get good results with AA samples ~ 3, Max Samples ~6.

Message 3 of 28
pproestos
in reply to: aaronfross

Thx Aaron.

Didn't use adaptive sampling since now..

I am impressed of your knowledge that you confirmed that

there is a huge quality problem in denoising reflections...

I will check what yout told me and be right back 🙂

Message 4 of 28
thiago.ize
in reply to: aaronfross

Yup, Aaron is right -- denoising on glass is not going to work well. The reason is that noice will not have all the AOV info it needs in order to do a good job. For instance, all the normals that the denoiser gets are for the glass and not the object behind it (refraction) or in front of it (reflection), so we gets this smearing effect.

We are discussing in an internal ticket if there is anything we can do to make this better. In the meantime, like Aaron said, adaptive sampling can help. You might also be able to render without glass, denoise that, and then comp in a glass reflection render?

Message 5 of 28
pproestos
in reply to: thiago.ize

thx a lot Thiago, I will try enable adaptive samping even if I consider bigger rendering times... I always avoid any post because when you have your boss over your head and "yesterday" delivery renderings, you understand how fast (and good of course) you should be 🙂

Message 6 of 28
pproestos
in reply to: pproestos

@Aaron Ross

@Thiago Ize


Tried to include Adaptive sampling and

I get no significant difference, except increasing

my rendering time, wich I try always to keep it

balanced and not exceed one hour for each image...

(I have an i9 system)


Denoised image is still the same in both

enabled or disabled Adaptive sampling scenarios,

with all textures reflected and refracted

through glass partitions, faded out.


I know for some people this is not important,

but if you do very demanding interior renderings

where you have to show every single detail and

you have a lot of transparent surfaces like glass,

the only way to preserve rendering accuracy is

NOT to denoise anything, meaning that I have

to increase aa samples as much as I can,

so much much longer rendering times...


6927-noice.jpg




Message 7 of 28
thiago.ize
in reply to: pproestos

I think we were both suggesting to use adaptive sampling instead of denoising, or if you do denoise, change the settings to make it much less aggressive.

Adaptive sampling won't save any time until the pixel has reached its AA_adaptive_threshold. Considering how noisy your image looks, I suspect that's mostly not happening. I suggest setting all other sample settings to 1 or maybe 2 if it's a huge source of noise, which is what then lets you raise the AA_max to something large like 20 or 30 (arnold docs need updating), and using AA_adaptive_threshold as your render time/noise dial.

Message 8 of 28
thiago.ize
in reply to: pproestos

To explain the max AA of 20: you used AA=4, and diffuse/specular/transmission samples of 3 (there's no mention what the light samples are), so that roughly means that if you cut those secondary samples form 3 to 1, then to get the same quality as before you roughly need to increase AA from 4 to 4*3=12. So an AA_max of 20 isn't really that big of a jump. The reason we do all this is that adaptive now has more room to give speedups. Instead of picking between AA values of 3, 4, 5, and 6, like in your previous AS test, we can now go from 3 all the way to 18, which can save more work.

Message 9 of 28
aaronfross
in reply to: pproestos

Good points, thanks Thiago. Are you saying that camera AA adaptive sampling works best with low values to the component samples? I would have thought that we could optimize performance by dialing in customized values for the component samples, and using less aggressive camera AA adaptive sampling.

Petros, definitely check on the samples of your lights. I always increase them up to 3, sometimes higher. This SIGNIFICANTLY reduces noise in the directly illuminated area. You need to use Arnold lights for this, 3ds Max Photometrics are not supported. Sampling settings for the environment are in the Arnold tab of the Render Setup. For indirect bounce light, I increase the Diffuse samples.

The Adaptive Threshold parameter is extremely sensitive, very small changes have a huge impact.

I've unlocked this paid tutorial and made it free for you, or anyone else who needs help with adaptive sampling:

https://www.linkedin.com/learning/embed/3ds-max-tips-tricks-and-techniques-2/accelerate-arnold-rende...

Message 10 of 28
pproestos
in reply to: pproestos

All my lights samples (arnold lights + environment) are setting to 5.

Anyway thanks a lot both of you... This forum is really something holy

for this magic software that creates miracles, but! with correct..adjustments!! 🙂

Ok..... I am going try some tests inside my already complicated scene Thiago and..

I'll be back! 🙂 🙂

Aaron thx for the tut... you are already in the list of my favorite mentors! 🙂

Message 11 of 28
thiago.ize
in reply to: aaronfross

Lower secondary samples give the adaptive sampler more room to do its thing.

To keep it simple, let's assume we just have diffuse noise. Then the number of diffuse rays cast is (diffuse_samples * AA)^2. So diffuse=1 and AA=6 is equivalent in quality to diffuse=6 and AA=1, which is also the same as diffuse=2 and AA=3 (all multiply to 6^2=36 diffuse rays).

Let's assume you need at least 45 diffuse rays to get rid of noise and AA_min is 3. The adaptive sampler would then terminate with the following combinations:


Message 12 of 28
thiago.ize
in reply to: aaronfross

diffuse=6, AA=3 -> (6*3)^2=324 diffuse

diffuse=1, AA=7 -> (1*7)^2=49 diffuse

diffuse=3, AA=3 -> (3*3)^2=81 diffuse

Of course, what's not shown here is that the AA=7 also cast 7^2=49 camera rays while the AA=3 only cast 3^2=9 camera rays. Camera rays do have a cost, but it's unlikely to offset the number of extra diffuse samples from the diffuse=6 case. So in this made up example, lowering the diffuse samples helped improve performance.

Message 13 of 28
thiago.ize
in reply to: aaronfross

Previous example was for easy pixels. For a difficult pixel, suppose we needed 700 diffuse rays to terminate. We would thus terminate as follows:
diffuse=6, AA=5 -> 900 diffuse rays (AA=4 would have given 576 rays)

diffuse=1, AA=27 -> 729 diffuse rays (AA=26 would have given 676 rays)

OK, in this case we save on diffuse rays, but we do spend quite a bit more on camera rays, so maybe the tradeoff isn't worth it. But, if we had done diffuse=2:

diffuse=2, AA=14 -> 784 diffuse rays (AA=13 would have given 676 rays)

Then we might have been on par. So, fewer diffuse can still help.

Message 14 of 28
aaronfross
in reply to: aaronfross

Thiago, thanks for your detailed explanation. My concern is that diffuse is not the only component. If you increase the AA samples, you're also increasing all component samples by that same factor. I know Arnold is a brute force renderer, but this sounds like using a sledgehammer instead of a scalpel. I'm not comfortable with sending out zillions of rays for specular when it's the diffuse component that's causing the noise issue. Correct me if I'm wrong, but there's more than one kind of noise. There's antialiasing noise, and there's raytracing noise.

Message 15 of 28
aaronfross
in reply to: aaronfross

It doesn't seem efficient to me to greatly increase the AA samples to get rid of noise in just one shading component. I can easily envision a common scenario in which increasing the AA samples negates any performance gain from adaptive sampling. On a good day, adaptive sampling might reduce render times by 20%. In my experience, in real world scenes, a conservative approach to Max AA samples hit the sweet spot.

Message 16 of 28
CiroCardoso3v
in reply to: pproestos

You also need to test different settings for the denoiser. I noticed the issue with glass surfaces, which you can get away in some instances by rendering without the glass and another region render with the glass to get that Specular AOV.

Lead Enviroment Artist @Axis Studios

Arnold Discord Server


Ciro Cardoso

EESignature

Message 17 of 28
pproestos
in reply to: CiroCardoso3v

Yes Ciro, as Thiago mentioned, this is the only way to have....anything!

I mean, noice for me is something magic. The way that eliminates pixel's

noise is unique and the fact of consuming a lot of precious rendering time.

So for the moment an intermediate solution for me is to keep that denoised

image and copy paste over the regions that I dont see well the materials, the

corresponding sections of the original rendering image.

Message 18 of 28
pproestos
in reply to: CiroCardoso3v

I tried different values in denoiser and in rendering sampling values...

No significant difference. And of course the purpose is not to render a

static image for 5 hours or in a rendering farm to eilimate noise!

Message 19 of 28
alan.kingFCDLA
in reply to: pproestos

Hello Petros,


I took a look at how you might get better results from noice in your particular scene setup, and think I may have found a way to do so.


Noice relies on a set of auxiliary AOVs like "Z", "N" and "denoise_albedo". The "denoise_albedo" is a Light Path Expression (LPE) that is currently being defined as: "((C<TD>A)|(CVA)|(C<RD>A))"


What this means is that it separates into an output layer the albedo components of sss (via "C<TD>A"), volumes (via "CVA"), and diffuse surfaces (via "C<RD>A"). I created a mock-up scene with a few simple shapes and a reflected area light to try to approximate your scene and found that this "denoise_albedo" AOV was missing all information about the surfaces behind a glass-like pane.

Here's what the raw RGB output of a few textured spheres behind a glass plane reflecting a thin quad light looks like:

6962-rgb.png

And here's the corresponding "denoise_albedo":

6963-denoise-albedo.png

As you can see, there is no albedo information behind the pane at all, which makes it hard for the denoiser to do its job in these areas. If we denoise the output as-is, this is the result:

6964-rgb-denoised.png

The same types of blurriness that you're seeing in your textures happens here as well, as most of the detail except in the thickest rings disappears.


Fortunately, you should be able to redefine the output of this LPE to include this same type of data for surfaces that are behind the glass and for reflected lights by adding the following user option (user options for MAXtoA are explained here😞


light_path_expressions 1 1 STRING "denoise_albedo ((C<TD>A)|(CVA)|(C<RD>A)|(C<TS>+<TD>A)|(C<TS>+VA)|(C<TS>+<RD>A)|(CS+[LO]))"


This new light path expression adds the albedo of diffuse surfaces and volumes behind the glass, as well as lights and emissive objects after any number of refractions/reflections, and with these changes the denoised output looks like this, preserving the detail of the reflected quad light and the ringed textures on the spheres:

6966-rgb-denoised-feature.png


Hope that this helps!

Message 20 of 28
pproestos
in reply to: alan.kingFCDLA

wow... thx Alan!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

gonna test it 🙂 🙂 🙂

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report