DeclanRussell / NvidiaAIDenoiser

A simple implementation of Nvidia's AI denoiser
MIT License
398 stars 52 forks source link

Multilayer EXR's #18

Open RicardoMusch opened 3 years ago

RicardoMusch commented 3 years ago

So first off, thanks for this amazing work!

I noticed that inputting a multilayer exr will output a multilayer EXR with some of the same channels (names are the same, but not all channels are there) but the channels have been altered with different data. I imagine these channels represent data the Denoiser used to Denoise.

I also wonder if the denoiser does anything with channel data, there is no way to feed it the albedo from a channel name right?

We are thinking of switching to rendering multi-image instead of multilayer to use this more effectively.

DeclanRussell commented 3 years ago

Thanks, I'm glad you're enjoying the tool!

Using multiple images is currently the only workflow but having multilayer EXR support certainly would be nice. The fact that the tool already outputs multilayer EXRs is purely by chance right now, as I reuse the input image handle for the output image. So I guess it just copies everything. The question is, what would be the most intuitive and practical way to expose this to a user? Hear are a couple of options I can think of off the top of my head.

Let me know what you think

RicardoMusch commented 3 years ago

Hey Declan,

I think keeping things simple will help! I'm thinking something like this:

Denoiser.exe -multilayer -albedoLayerName albedo -beautyLayerName beauty -normalLayerName n "my_multilayer_exr_file_path.1001.exr"

This way it's easy to code into things without having to deconstruct the filepath. If no albedo/normals/beauty tags specified I guess you could search for the layer names using the common ones, but normally the layernames won't change (except when changing render software).

Where you thinking of denoising the other channels as well? I think the main reason to switch to rendering singles is to make it very easy to denoise each aov or only selected aov's using the albedo/beauty/normals. Not all aov's will usually have the same amount of noise.

Obviously these are suggestions! This is all up to you in the end haha, appreciate the efforts!

DeclanRussell commented 3 years ago

Thanks Ricardo, this is great! I think I have a good idea of how I'm going to implement it. I'll try my best to find some free time to hack this in. I'll keep you posted :)

ChristopheMoreau commented 3 years ago

Hi guys, and again thanks Declan for you tool. Actually I'm using both Intel and Nvidia in a tool "FiNE" if you want to give it a try. It works with multilayer EXR, in sequence or single frame. The Normal and Albedo can be in separate exr or in the beauty pass. (like Renderman did when you want to denoise with the renderman hyperion denoiser, whitch is also in the tool).