Blender Git Commit Log

Git Commits -> Revision bc82f27

Revision bc82f27 by Sergey Sharybin (cycles-x)
July 30, 2021, 09:35 (GMT)
Cycles X: Support OIDN with guiding pass prefiltering

Straightforward implementation based on example from the OIDN 1.4
release page. Always configure the beauty pass denoising with the
`cleanAux true`, so that when guiding passes are noise-free we
don't filter them and don't introduce possible artifacts. When the
pre-filtering is enabled, then on top of cleanAux option we will
filter the guiding passes.

Has a separate option for viewport and final rendering, as pre-filter
is not coming for free and for viewport we want to be as interactive
as possible by default. From quick tests it seems that pre-filter is
rather quick, so maybe it can be enabled for viewport as well.

The final render has the option enabled by default to help with cases
when the result is tricky and noisy. If the passes are known to be
noise free is better to disable filtering manually. Can re-iterate
over the default value after gaining some more statistics.

Test file: F10242785
Ground truth: {F10242777}

|Samples|NLM|OIDN Old|OIDN new no filter|OIDN new with filter|
|64|{F10245231}|{F10245242}|{F10245244}|{F10245243}|
|256|{F10245232}|{F10245248}|{F10245233}|{F10245249}|

Extra result with the `pvt_flat.blend` scene:
|Samples|NLM|OIDN Old|OIDN new no filter|OIDN new with filter|
|256|{F10245234}|{F10245237}|{F10245235}|{F10245236}|
|512|{F10245238}|{F10245241}|{F10245239}|{F10245240}|

NOTE: NLM is done in the master branch, where lighting is handled a bit
different. Hence the difference in the light condition.

Differential Revision: https://developer.blender.org/D12043

Commit Details:

Full Hash: bc82f2772fdb20466ada068e09096d256916eaed
Parent Commit: fbddf87
Lines Changed: +137, -178

8 Modified Paths:

/intern/cycles/blender/addon/properties.py (+10, -0) (Diff)
/intern/cycles/blender/addon/ui.py (+21, -3) (Diff)
/intern/cycles/blender/blender_sync.cpp (+4, -0) (Diff)
/intern/cycles/device/device_denoise.h (+12, -21) (Diff)
/intern/cycles/integrator/denoiser_oidn.cpp (+82, -148) (Diff)
/intern/cycles/integrator/denoiser_oidn.h (+1, -5) (Diff)
/intern/cycles/render/integrator.cpp (+6, -1) (Diff)
/intern/cycles/render/integrator.h (+1, -0) (Diff)
By: Miika HämäläinenLast update: Nov-07-2014 14:18MiikaHweb | 2003-2021