Page MenuHome

Compositor: Add OIDN prefiltering option to Denoise node
ClosedPublic

Authored by Manuel Castilla (manzanilla) on Aug 29 2021, 10:49 PM.

Details

Summary

It's equivalent to the OpenImageDenoise prefiltering option in Cycles X.
See D12043: Cycles X: Support OIDN with guiding pass prefiltering.

Prefilter modes:

  • None: No prefiltering, use when guiding passes are noise-free.
  • Fast: Denoise image and guiding passes together. Improves quality when guiding passes are noisy using least amount of extra processing time.
  • Accurate: Prefilter noisy guiding passes before denoising image. Improves quality when guiding passes are noisy using extra processing time.

Test file: F10350566

Reference image:

Denoising prefilter (64 samples render):

NoneFastAccurate

Diff Detail

Repository
rB Blender
Branch
cmp-denoise-filters (branched from master)
Build Status
Buildable 16821
Build 16821: arc lint + arc unit

Event Timeline

Manuel Castilla (manzanilla) requested review of this revision.Aug 29 2021, 10:49 PM
Manuel Castilla (manzanilla) created this revision.
  • clang-tidy, fix unused variable warnings
Manuel Castilla (manzanilla) retitled this revision from [WIP] Compositor: Add OIDN prefiltering option to Denoise node to Compositor: Add OIDN prefiltering option to Denoise node.Sep 5 2021, 1:22 PM
This revision is now accepted and ready to land.Sep 6 2021, 11:41 AM
Sergey Sharybin (sergey) requested changes to this revision.Sep 6 2021, 12:01 PM

It should be possible to tell OIDN that the guiding passes are noise-free without prefiltering the guiding passes. See the enum from Cycles for reference:

enum_denoising_prefilter = (
    ('NONE', "None", "No prefiltering, use when guiding passes are noise-free", 1),
    ('FAST', "Fast", "Denoise color and guiding passes together. Improves quality when guiding passes are noisy using least amount of extra processing time", 2),
    ('ACCURATE', "Accurate", "Prefilter noisy guiding passes before denoising color. Improves quality when guiding passes are noisy using extra processing time", 3),
)

The NONE prefilter sets cleanAux to true, so that the OIDN preserves details the best when the guiding passes a noise-free.
The FAST is how the OIDN works in the current master branch: guiding passes are denoised filtered together with the color pass. No prefilter is requires, cleanAux should be false (or not set).
The ACCURATE prefilters the guiding passes, and sets cleanAux to true. Is slower than FAST, but preserves details better when guiding passes are noisy.

This revision now requires changes to proceed.Sep 6 2021, 12:01 PM
  • Use an enum option with same prefilter modes as cycles

Sorry, the review slipped through the cracks.
Good work!

This revision is now accepted and ready to land.Sep 14 2021, 4:19 PM