So I was digging through PBRT's code (starting with SamplerRenderer and PathIntegrator) and realized that the volume integrator is only evaluated once: during the first leg of a ray's journey. I figured, that can't be right.. that would make fog invisible in a mirror... To investigate, I wrote up a little .pbrt file, and sure enough, no fog in reflections! This seems like a pretty big issue to me.
The scene I created has a cube of fog in front of the camera. Inside the cube is a sphere and a spot light. Right behind the camera is a mirror. The two images were generated by flipping the direction the camera is facing:
After discovering this issue with PBRT, I got curious about LuxRender, and so I made the few modifications necessary to the scene file to load it into LuxRender. LuxRender handles both cases equally, as it turns out. Good job LuxRender devs!
I've attached both the .pbrt and .lxs files for the curious. Let me know if the .lxs isn't the best representation of the .pbrt for comparison. What should I do with this info now?