You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Turns out that this boils down to the GPU path not using ray differentials for texture filtering.
The parameterization on that model is funky, leading to a very wide filter. On the CPU, at each point it ends up using the average of the entire texture, while on the GPU, it point samples the finest MIP level. The finest MIP level is mostly black, with some white regions, so the top of the MIP pyramid is dark grey...
So, either WAI, or more reason to get some texture filtering implemented in the GPU path...
Rather than tracking them along with the ray (and incurring the
corresponding bandwidth and memory costs), we always use the
Camera::Approximate_dp_dxy() method, which may mis-estimate them in the
presence of specular reflection and refraction, though generally works
well.
Mostly addresses issue #10.
Dolkar
pushed a commit
to Dolkar/pbrt-v4-myod-integration
that referenced
this issue
May 8, 2023
Rather than tracking them along with the ray (and incurring the
corresponding bandwidth and memory costs), we always use the
Camera::Approximate_dp_dxy() method, which may mis-estimate them in the
presence of specular reflection and refraction, though generally works
well.
Mostly addresses issue mmp#10.
A few things are coming out differently, for unclear reasons. e.g. the pipes in frame52.pbrt.
CPU:

GPU:

The text was updated successfully, but these errors were encountered: