Since the pixel spacing is computed from dpdx and dpdy of differential geometry, if the camera ray hits many mirror before reaching a diffuse surface, the spacing may become very large. Because the minimum contribution range is
" minSamplePixelSpacing * pixelSpacing "
the cache point will cover a very large area. And if it's position is close to the camera, the artifact appears.
Acknowledged that this is an issue with the current implementation. However, closing as "will not fix", since pbrt-v3 doesn't support irradiance caching. Thanks for reporting this, though!
Since the pixel spacing is computed from dpdx and dpdy of differential geometry, if the camera ray hits many mirror before reaching a diffuse surface, the spacing may become very large. Because the minimum contribution range is " minSamplePixelSpacing * pixelSpacing " the cache point will cover a very large area. And if it's position is close to the camera, the artifact appears.