Consider the PBRT implementation of the subpath connection in bidirectional path tracing for the strategy with a single camera vertex, as described here: http://www.pbr-book.org/3ed-2018/Light_Transport_III_Bidirectional_Methods/Bidirectional_Path_Tracing.html#SubpathConnections.
To allow for importance sampling, they ignore the previously generate camera subpath (consisting of a single vertex) and importance sample a new one.
My question is: Why are they sampling the camera subpath (by running the
GenerateCameraSubpath) at all if they already know it will be ignored in the connection step? Couldn't we check for
t = 1 before the call to
GenerateCameraSubpath and only invoke it if
t != 1? This should be correct, but there is a subtlety worrying me: They immediately return $0$ radiance if the call to
GenerateCameraSubpath failed to generate a subpath of length
1. Now the question would be if it is possible that
GenerateCameraSubpath fails to generate a subpath of length
1, but the sampling in the connection step is successful.
I'm also interested in the same question for a light subpath with a single vertex.