Blender Git Loki
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)
/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)