question

Ciro Cardoso avatar image
Ciro Cardoso asked ·

Denoise AOV - using Noice and not Optix

I searched on the forum to see if this is possible and found nothing specific. I want to rebuild my beauty pass on Nuke. For that I need to denoise diffuse, specular, etc. I can't find a way to do that with the current denoise in 3ds Max.


Do I need to do this using the command line? Yes, I know that there is an option to denoise in the AOV manager, but I don't have a GPU that supports Optix. Besides I am doing an animation and Optix isn't good enough for animations.


I am trying to use this syntax

noice.exe "Y:/HD_RandD/renders/ArnoldNew/A_Diffuse_Noice_Input.exr" --output "Y:/HD_RandD/renders/ArnoldNew/Diffuse.exr"" -aov diffuse_indirect -pr 3 -sr 6 -v 0.25


Or are we just stuck to the beauty pass? If so how VFX approach this limitation?


aovsnoise
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Stephen Blair avatar image
Stephen Blair answered ·

Here's an example. Set up your AOVs like this:

And run noice like this:

set IMAGES="C:\Users\Stephen Blair\Documents\3ds Max 2020\renderoutput\denoiseme"
set ARNOLD_BIN=S:\solidangle\arnold\Arnold-6.0.2.0-windows\bin
%ARNOLD_BIN%\noice ^
-ef 2 -sr 2 -pr 2 -v 0.5 ^
-i %IMAGES%/AOVs0003.exr ^
-i %IMAGES%/variance0003.exr ^
-l diffuse ^
-l specular ^
-o %IMAGES%/denoised_AOVs0003.exr ^


The AOVs and variance AOVs are in separate EXRs
That's necessary to be able to have different filters for the same AOV in MAXtoA


1 comment Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Just to add that if you add the Nromal, Depth and Albedo, the denoiser works even better. So keep that in mind.

0 Likes 0 · ·
Ciro Cardoso avatar image
Ciro Cardoso answered ·

Thanks @ and @ for your help with this. I am running some tests, but it is working for sure. Just comparing if the denoise we get on beauty will then be the same as the denoise. A big thanks for solving this. I can now render a 2K in under 18 minutes.

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Mads Drøschler avatar image
Mads Drøschler answered ·

This has been resolved and is possible.
So my answer above this one deserves to be demoted as answer, it's misleading as it is possible to denoise the indirect.
I learned this from Ciro on the discord just now.

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Mads Drøschler avatar image
Mads Drøschler answered ·

Look below for solution -->

Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Ciro Cardoso avatar image
Ciro Cardoso answered ·

@

Trying to use that denoiser, but I am doing something wrong for sure. So here is a breakdown of what I am doing.


The AOVs


The render test is this one


Now, I start to think that something is wrong either with the Albedo or the Normal AOV. They look like this

Normal


Albedo


I run the command

Denoiser.exe -i Beauty.exr -o NewBeauty.exr -a Albedo.exr -n Normal.exr


Output


So I am not even trying denoising the diffuse_indirect. I am just trying to denoise the beauty pass. Is it the filter I am using? Do I need to use a Box filter? Is it normal map? I tried the example available on github and it works, but the normal is different then the one I have.


aov.png (71.3 KiB)
render.jpg (423.3 KiB)
normal.jpg (366.9 KiB)
output.jpg (195.8 KiB)
albedo.jpg (140.9 KiB)
4 comments Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Is it because my Normal map goes from -1 to 1?

0 Likes 0 · ·

I am sure that it has something to do with the Normal Map. Test it with Corona and it works really well. As you can see:

and the normal map looks like this

0 Likes 0 · ·
corona.jpg (94.1 KiB)
normal.jpg (366.9 KiB)

OK, I guess first hole through.
Ill look at it in the morning and see if the AOV's are busted in some way.

0 Likes 0 · ·
Show more comments
Ciro Cardoso avatar image
Ciro Cardoso answered ·

It kind works, but not enough for me to use it. Doesn't came close to noice.


noise.jpg (114.1 KiB)
1 comment Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Doesnt look like right workflow, since if it was working there would be zero noise on your image. Its not just removing a bit, if its done right it removes everything. Defaults are set to clean all noise.

What I think you miss here is the beauty, you need the beauty and then inject the indirect into the file then process.

0 Likes 0 · ·
Mads Drøschler avatar image
Mads Drøschler answered ·

First hole through via Declans hook.

-I save the Albedo and Normal in 2 files.
-I also save the diffuse indirect out, in this case I picked 2, just ignore the second.
- Swap out the RGBA with the indirect_Diffuse AOV and run the denoiser process.

The image on the right is the indirect denoised with this CPU denoiser and the right is before.


1 thing though, you can see the albedo transfered, the indirect is a float in that sense, so the albedo needs to be desaturated or do an auto post flatten to float space needed.
Else, you get incorrect values when you start to composit these things. You need to batch these things for many frames, but it can all be done with DOS batch and some automated image processing tool doing some flattening.



qwe.png (849.6 KiB)
2 comments Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

This is cool @

I may able to use Arnold after all. Fingers crossed as I am going to test this.

0 Likes 0 · ·

1 more test in 3k res ~

0 Likes 0 · ·
ccccc.png (1.8 MiB)
Ciro Cardoso avatar image
Ciro Cardoso answered ·

Is this something that can be implemented from Maya?

2 comments Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

You can do it in Maya with MtoA. But 3ds Max and MAXtoA are a different implementation, and I don't see a way to work around it like I do in Maya.

0 Likes 0 · ·
Ciro Cardoso avatar image Ciro Cardoso Stephen Blair ♦♦ ·

Ok, so are there any plans to implement this?

Honestly, this is a point where I can justify implementing Arnold. If we can denoise AOVs like you can do on other renders, then I don't see the point. I can't wait 20 hours or so to have a finished render.

0 Likes 0 · ·
Stephen Blair avatar image
Stephen Blair answered ·

hmm, not so easy

[Arnold]: [driver_exr] AOVs_1.exr: ignoring duplicate layer "direct" of type RGB in file `C:\Users\Stephen Blair\Documents\3ds Max 2020\renderoutput/AOVs_1.exr'
[Arnold]: [driver_exr] AOVs_1.exr: ignoring duplicate layer "indirect" of type RGB in file `C:\Users\Stephen Blair\Documents\3ds Max 2020\renderoutput/AOVs_1.exr'



3 comments Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

I am trying to add a Diffuse AOV with the varience and see if that works.

0 Likes 0 · ·

I don't think it is possible.
You need to be able to add a second AOV with the same light path expression as the original. So for diffuse, it would a custom AOV for C<RD>.* with filter = variance

0 Likes 0 · ·
Ciro Cardoso avatar image Ciro Cardoso Stephen Blair ♦♦ ·

oh...I was really hoping we could do it. I am not sure I can rely on Neat Video to denoise the AOVs. I am going to try but if this doesnºt work I need to completely drop Arnold until AOVs can be denoised. I am gutted

0 Likes 0 · ·
Mads Drøschler avatar image
Mads Drøschler answered ·

Declans stand alone denoiser is kinda nice because it relies on "a render of anything" and an Albedo and a Normal AOV, besides it also runs on the CPU.

denoiser -i qwe.exr -o notkitchen_Denoised.exr -a AOVs.exr -n AOVs_1.exr


The trick is to add in a 3rd AOV, one that contains the indirect AOV and you call that instead of the beauty pass when denoising.

That will denoise on the CPU "any input" cpu/gpu/AOV's etc.

8 comments Share
10 |600 characters needed characters left characters exceeded

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

@ thanks.So does that mean noice can't denoise the AOVs at the moment right? I just need to know that before doing an entire animation in Arnold and then getting stuck.


I will have a go with the Declans's denoiser, but does it compare to Arnold's denoiser?

0 Likes 0 · ·

Declans denoiser stuff sits between OptiX and noice in terms of quality, it is muuch better than OptiX, if you let something render for x number of seconds and denoise and compare Optix with Declans stand alone you see huge differences in detail presevation.

You could experiment building your own input with variance, Z and the other layers the Exr needs, then you swap out the beauty with the AOV you want to denoise.
I havent tried this, I just know we had to build the exr manually in the start where anything, in reality could go into the beauty layer.

0 Likes 0 · ·

oh boy. That is no good news at all. I think I will have to go back to Corona then.

I can't rebuild 7200 frames x 5 or 6 aovs that I need. Besides I need the noice quality to get away with the noise I have on this scene.


This is really a let down

0 Likes 0 · ·
Show more comments

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 5 attachments (including images) can be used with a maximum of 2.0 MiB each and 9.8 MiB total.

Welcome to the Arnold Answers community.

This is the place for Arnold renderer users everywhere to ask and answer rendering questions, and share knowledge about using Arnold, Arnold plugins, workflows and developing tools with Arnold.

If you are a new user to Arnold Answers, please first check out our FAQ and User Guide for more information.

When posting questions, please be sure to select the appropriate Space for your Arnold plugin and include the plugin version you are using.

Please include images, scene and log files whenever possible as this helps the community answer your questions.

Instructions for generating full verbosity log files are available for MtoA, MaxtoA, C4DtoA, HtoA, KtoA, and Kick.

If you are looking for Arnold Documentation and Support please visit the Arnold Support site.

To try Arnold please visit the Arnold Trial page.

Bottom No panel present for this section.