Open ladna373 opened 1 month ago
That is expected behavior, as caustics cannot be displayed on surfaces where the roughness is too low, as the BRDF lobes get too thin and the BRDF evaluates to 0. Because we use a fixed surface definition, a surface is either classified as diffuse or specular, Photons are only stored and collected on diffuse surfaces. The photons use the same definition, as we used to determine the first hit point. The values can be changed in this setting:
However, it should be noted, that a roughness value lower than 0.08 uses delta functions (perfect mirror), so BRDF for caustics is always 0 at that point. Falcors BSDF can also be a bit weird at times, especially with low-roughness materials that have no metallic parts. Also, this scene uses spotlights, with emissive lights the path tracer would hit the light source at the caustic spots, as now the reflection is pretty well defined.
Still, if the cutoff is set down, caustics are visible as long as the wall has a roughness of >=0.08. However, correlation artifacts will appear for resampling if the cutoff is set that low. Here is an example where the roughness of the wall is set to 0.08 with the cutoff settings from above: (Note that, indirect light is now pretty noisy for these surfaces)
To handle such low-roughness surfaces better, we would probably need to implement Hybrid Shift Mapping from the GRIS paper to acquire the first diffuse surface
@SirKero thank you very much for the answer and for your help! The result may be “noisy”, but even so, it’s very impressive! I wanted to ask how long it will take to implement HSM in RESTIR FG?
Thanks!
We currently have no ETA for HSM as I am currently busy with other research. But it would be highly interesting how well it actually works and how much it affects performance, as HSM involves tracing more rays.
maybe it's too late to write something, but I wanted to ask - if the renderer is real time, then how to implement hsm? i heard its working only on "interactive" renderers
HSM is not necessarily "interactive", but is definitely slower than tracing a random ray. In our case, we would only use temporal HSM to the first diffuse hit (similar to SuffixReSTIR). While this will be slower, as now two paths need to be traced per pixel, the increase should not be so drastic that real-time is no longer possible.
Thank you very much for your answer! And how will temporal differ from regular?
You can use HSM to resample spatiotemporally (as used in ReSTIR PT). However, this is for one more costly (one or more spatial samples that need to be retraced) and is very prone to correlations. One additional temporal sample to trace to the first diffuse surface should be sufficient, as spatiotemporal ReSTIR FG would be used on the first diffuse hit.
Thanks again for the answer, I really appreciate it! I would also like to ask: will there be an update soon with this feature added?
Probably not anytime soon. Adding HSM is not that simple and it is currently not that high on our priority list.
can I find out what is your priority for adding to the restir or will you not update the restir fg at all?
ReSTIR FG is mostly in maintenance mode, so don't expect any huge feature updates. Big features like HSM will only be added if circumstances allow it (e.g. needed or of interest for future research) and I cannot promise if they will ever happen.
based on the name itself, the problem is that there is no caustic on another surface like this