Closed wanlong-li-business closed 1 year ago
I had a quick look and can reproduce the behavior on our current internal version.
Looking at isDeltaReflectionAllowedAlongDeltaTransmissionPath
in NRDHelpers.slang
, it seems we use evalFresnelDielectric
incorrectly. The function automatically inverts the relative index of refraction internally if cosThetaI
is negative (incident on lower hemisphere). But we still compute the eta
with respect to the hemisphere of the incident direction. So it seems to me the correct way of doing it is:
const float eta = sd.IoR / insideIoR;
bool totalInternalReflection = evalFresnelDielectric(eta, sd.frame.toLocal(sd.V).z) == 1.f;
At least with this the rendering is fixed here:
Thank you very much for your prompt confirmation and reply!
It was very helpful.
I wish you all the best in your company in the future.
Hello,
Our team is trying to use Falcor for path tracing rendering and NRD for denoising.
But I found that the NRD results are different between Falcor 6.0-preview1 and Falcor 6.0-preview2.
Such as the image below. The left is in preview2 and the right is in preview1.
You can see some strange black shadows in left. And the right side has a more beautiful refraction effect.
I used the official rendering resource named "Utah Teapot (full)", and use the "PathTracerNRD.py" in Mogwai for rendering with default settings.
I used the master branch with tags "6.0-preview" and "6.0-preview2" without any changes. (I have confirmed that the results for the tag "6.0-preview2" and the new tag "6.0" are the same.)
Members of my team have checked the issue on different computers. But the problem also exists.
I wonder if this is a bug which happens from 6.0-preview2. Or it's just a matter of my behavior and setup.
Thank you so much.