Cycles OIDN support

Hey everyone,

Intel Denoise has been updated to 1.2.0 with some interesting features like:

  • Added neural network training code;
  • Slightly improved denoising quality (e.g. less ringing artifacts, less blurriness in some cases);
  • Improved denoising speed by about 7-38% (mostly depending on the compiler);
    etc.

Iā€™m curious what version of IOID implemented in Blender right now? Is it up to date or not?

Same discussion is already going on here.

1 Like

Weā€™ll likely upgrade to 1.2.0 for Blender 2.90:
https://developer.blender.org/T76184

9 Likes

I am curious about this:
https://developer.blender.org/rBd3283ef1210fe63f75a3b1a60efa3abe5763e6ad

I do ā€œmake updateā€ in blender folder, and in ā€œ/lib/linux_centos7_x86_64/openimagedenoise/include/OpenImageDenoise/version.hā€ it still shows 1.0.0
Is 1.2.0 version not already included in precompiled libraries?

Precompiled libraries were not updated yet.

1 Like

It looks like the Windows precompiled OIDN library is at v1.2.1, Linux is still at 1.0.0.

By the way: Does this mean the Linux builds from builder.blender.org are on 1.0.0, too? AFAIK they use the precompiled libs, right?

In fact it would be good to know if there is any method to see the versions of the libraries that have been used in a certain Blender build. In this case for OIDN, but also in general.

1 Like

I can probably clear up some of this confusion, the updating of the SVN libs is depended on the time the maintainers of a certain platform has available, the process closely follows the release schedule.

The way this works, I generally do most of the work in the deps builder (the source script that builds the SVN libs), and I aim to be done in bcon1 for windows, leaving some of bcon1 and the beginning of bcon2 for the other platform devs to catch up and build the libs for mac/linux and upload them to SVN.

However in bcon3 when the release branches/tags are made, the libs ought to be in place for all platforms.

So until bcon3 hits, thereā€™s a rather large chance that the platforms have slightly different libraries on any given day.

bcon3/4/5 will have a good set of libs with identical versions across the platforms.

However once bcon3 hits for release N , bcon0 starts for release N+1 which repeats the loop.

TLDR;
if you want stable libs, stick to stable branches, master will always be whatever was available that day for any given platform.

3 Likes

Libraries were updated today. Thank you!

Hi, can you build with latest updates?
I got:

make[3]: *** Keine Regel vorhanden, um das Ziel
ā€ž/home/pepo/blender-git/lib/linux_centos7_x86_64/openimagedenoise/lib/libmkldnn.aā€œ, 
benƶtigt von ā€žbin/blenderā€œ, zu erstellen.  Schluss.

*** No rule to create libmkldnn.a
end***

Cheers, mib

Hi mib.
I can successfully build without problems on Kubuntu 20.04.

Thank you for fast reply, got it to build removing the build directory on Laptop but still problems on workstation.
Will open a new thread if I not get it fixed by myself, has nothing to do with OIDN anyway.

Cheers, mib

You need to update the CMake configuration (by removing all OPENIMAGEDENOISE* variables from CMakeCache.txt) or start a clean build by removing the build_darwin folder entirely.

https://developer.blender.org/rBL62455#272261

1 Like

Hi. A couple of questions about new OIDN for final render. OIDN denoise node offers an option called ā€œHDRā€. I really donā€™t know technical issues and I donā€™t know exactly when it should be used. I was just wondering if this should also be an option to final render with OIDN, for example on View Layers tab. Also I have noticed that OIDN does not offer Input Passes in View Layers tab (like Optix). Should we have it?. Or perhaps it would be better to leave it as it is so as not to complicate much user settings.

I would also like to know what pass uses it as an image input, ā€œImageā€ output or ā€œNoisy Imageā€ output?. I ask because I understand that Noisy Image pass is mainly designed for native NML denoiser, and it could cause some problems if it was used in OIDN denoising node.

Iā€™m not sure what the use case would be for disabling the HDR option on OIDN the way its used in Blender. I think it should just always be used.

This partly answers my question:
https://developer.blender.org/T78881
Brecht already fixed it by the way (thanks!)

Now I would really like to know if it uses Image output or Noisy image output/pass :slight_smile:

1 Like

With OIDN the Image output before denoising and Noisy Image pass are exactly the same thing, thereā€™s nothing NLM specific about it.

1 Like

Hi.
My very bad memory to remember things (sorry for that). I have done a search and it turns out that I had even participated in the discussion and I had made tests (see this message here, from some messages above and some messages below)

@lukasstockner97 Could you clarify this please?
If this is how those firefly tests I did there, the best thing for OIDN would be to use Image output preserving the fireflies, because OIDN does a very good job transforming those fireflies into lighting, then the results are much more matched when comparing OIDN denoised result with many samples render without denoiser.

1 Like

NLM does prefiltering to remove things like fireflies, OpenImageDenoise does not, thatā€™s how it was implemented.

1 Like

Oh, okay. Thanks for clarifying.

1 Like