Closed ghost closed 3 years ago
hello, if you set the "maxContribution" on the renderer to a reasonable value, do these fireflies disappear?
Yes, if I set maxContribution=1, the artifact disappears. Setting maxContribution=10, there are still several pixels with artifacts. In the document, the default value is +inf. So my question is: to override the default value, what value should I use? Is this value scale invariant?
Those are very likely "Fireflies", caused by paths with low probability that connect to the light source (and whose contribution consequently get amplified). A typical example are scenes with diffuse and highly specular objects (like glass), like in your example, where the fireflies are actually caustics that are undersampled (because vanilla path tracing cannot deal well with caustics). The recommendation, as @carsonbrownlee said, is to set maxContribution
as a workaround, which dampens the caustics and thus the Fireflies. A good value for maxContribution
is above (with some margin) the brightest pixel value you see (before tonemapping / exposure), e.g., for typical scenes between 1 and 10. Lower values will filter those artifacts more aggressively, but you risk to loose brilliance (e.g., highlights) as well (which is why the default is inf
).
We are working on improving the path tracer with more advanced sampling techniques to attack the root cause, to make the workaround with maxContribution
obsolete / much less needed.
Thanks very much for the reply. At this time, I think it might be better to set the default value of maxContribution" to something other than inf, such as 5?. Anyway, generating an image with less highlights is better than an image with visual simulation artifacts.
On Tue, May 11, 2021 at 3:44 AM Johannes Günther @.***> wrote:
Those are very likely "Fireflies", caused by paths with low probability that connect to the light source (and whose contribution consequently get amplified). A typical example are scenes with diffuse and highly specular objects (like glass), like in your example, where the fireflies are actually caustics that are undersampled (because vanilla path tracing cannot deal well with caustics). The recommendation, as @carsonbrownlee https://github.com/carsonbrownlee said, is to set maxContribution as a workaround, which dampens the caustics and thus the Fireflies. A good value for maxContribution is above (with some margin) the brightest pixel value you see (before tonemapping / exposure), e.g., for typical scenes between 1 and 10. Lower values will filter those artifacts more aggressively, but you risk to loose brilliance (e.g., highlights) as well (which is why the default is inf).
We are working on improving the path tracer with more advanced sampling techniques to attack the root cause, to make the workaround with maxContribution obsolete / much less needed.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ospray/ospray/issues/481#issuecomment-838006440, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAIL6OGEA2QEVUV3SXJDDETTNDN5DANCNFSM44SRTTVQ .
When using the path tracer in ospray 2.5.0, I saw rendering artifacts in rendering a model in glass material, as shown in the image below. There are several white/red spots in the image, which cannot be removed by the image denoising plugin. Initially, to reduce the artifacts in Monte Carlo simulation, I specified a high sampling rate of 256 samples per pixel.
However, these noisy spots seems to be caused by the high sampling rate. When using a lower value, it is actually getting better:
This problem seems to be related to transparent object only. When rendering opaque ones, I don't see the same artifact, even though the same rendering parameters are specified. I've done some debugging. It looks like the function evaluateVirtualLights() in VirtualLight.ispc has a problem.