Cycles: Removing "white pixels" from a rendered image
Needs RevisionPublic

Authored by Milan Jaros (jar091) on May 16 2017, 8:58 PM.

Details

Summary

I found the incorrect calculation of the indirect lamp emission, which causes white pixels in a rendered image

http://blender.it4i.cz/research/removing-white-pixels-from-a-rendered-image/

Diff Detail

Repository
rB Blender

Hi.
Testing the patch with the scene shared by pafurijaz user here:
https://blenderartists.org/forum/showthread.php?395313-Experimental-2-77-Cycles-Denoising-build&p=3072751&viewfull=1#post3072751


I hope I have applied the patch correctly, otherwise my apologies if it was not so.

Blender whitout the patch:


Patched Blender:

There are less fireflies, but something in lighting has also changed. See especially the windows.
Just in case, here the image with blender unpatched, but Clamp indirect=8
http://pasteall.org/pic/show.php?id=115626

The change seems strange to me. For the rays which are not marked to be skipped from MIS (PATH_RAY_MIS_SKIP) you are kind of accommodating for ls.pdf twice (due to the power heuristic above). For the rays which are marked to be skipped from MIS you're accommodating for ls.pdf.

Not sure how this is supposed to work.

Brecht Van Lommel (brecht) requested changes to this revision.May 20 2017, 4:52 PM

The patch looks wrong to me, this is the pdf for light sampling which we are not doing in this function. That pdf should only be used for the MIS balance.

This revision now requires changes to proceed.May 20 2017, 4:52 PM

It may be that there is something to be fixed or improved here. The first thing I would suggest to investigate would be rendering the two MIS components separately, by replacing power_heuristic() by 0 or 1, that might reveal something. On the other hand it might just be a case where both MIS components are noisy.

It may be that there is something to be fixed or improved here. The first thing I would suggest to investigate would be rendering the two MIS components separately, by replacing power_heuristic() by 0 or 1, that might reveal something. On the other hand it might just be a case where both MIS components are noisy.

Hi,

thank you for comments.

I still think the L value from direct_emissive_eval function is too big for adding to emission value and has to be smaller value.

In the scene Vray_vs_Cycles_vs_Maxwell.blend are two types of white pixels (the first from direct lamp and second from indirect lamp). I tested it on all frames of scene 01_04_B from Agent327 and I think it worked. The white pixels had >>100 value for each channel of RGB.

I will continue to investigate in this area.

Milan Jaros (jar091) edited the summary of this revision. (Show Details)Jul 6 2017, 3:38 PM