Bidirectional path tracing
Bidirectional path tracing connects vertices. The vertices are generated from 1. a light source, 2. an eye. My question is how these vertices are connected, this is rather an implementation question. If we connect all the generated vertices, this is combinatorial explosion and we can not handle this. Daniel answered me that 1. make two paths a pair (one comes from a light, the other comes from an eye), 2. connect vertices only from the paired paths. This is an efficient implementation.
Figure 1. Connect vertices in Bidirectional path tracing
The number of generated rays are the computation cost, but how many contributions we can get differs depends on how to connect them as shown in Figure 1. This figure is a simplified version (no occlusion at all). But, we could have many contribution by generating smaller number of rays.
Overview idea of multiple importance sampling method
This paper has a lot of interesting ideas. I will summarize them after Chapter 9.
If we could sample infinitely in all the directions in the environment, but our computational resource is usually limited. Therefore, we use several different sampling methods. Each sampling method has advantages and disadvantages. Multiple importance sampling method is: how to combine them and exploit all the benefits. After the combination, Veach showed it is possible to stay unbias. This is great. Also this is not only for the light transport method, but this is general.
The proposed sampling methods are: sampling method that awares the light source direction, sampling method based on BRDF. If we know where the light comes from, or which direction has no light, we could sample them more efficiently. For example, it is useless to sample the direction that has no light. These sample doesn't affect the result. BRDF gives us a hint, most of the light comes in a specific direction. Another possibility is visibility.
Thanks to Daniel, Leo, and Carsten.