I'm trying to render water using path tracing. However, since in path tracing, the light sampling is skipped while the intersection point is perfect specular and thus no direct light would be taken into account.
So does that mean all contributions(radiance) are indirect lighting on specular surfaces(i.e. dirac BSDFs), no direct light should be computed for specular sufaces?
Say, I have a scene with environment map(infinite sphere) and a water object, represented by a triangle mesh. If the max bounce parameter is set to 1, then the water surface would not be lit at all.
And if the max bounce parameter is set to 2, all contributions are from rays reflected and "hit the environment map". For those reflected rays still hit the water surface, there would be no radiance on that ray.
The consequence would be for some region on the water appears to be very dark.
I wonder if my understanding is right, and if not, how do I fix it?
Here's my demo for one bounce, two bounces and 20 bounces.
1 bounce
2 bounces
20 bounces I think the color in the red box is incorrect, it should be brighter.