In The Cornell Box Scene， there is one path as following image shows:
the yellow line is direct sample line. All material is BRDF material.
In my understanding, the process is :
the ray starts from eye, and hit tall box and then bounce to right wall and then to top roof and hit the cube light shape in top roof. But it do not stop!! It still bound from light shape to the right wall and in the end sample direct light from light shape to the hit point at right wall.
that is, the process is : 1->2->3->4->5
So , in this process the light shape is treated as normal lambertian material and bounce as normal object in my opinion.
I sample 1 each pixel, and all are lambertian, So I think
radiance_out = radiance_in * albedo
and this works for other hit points. for example , the tall is white material, which is white
white: (0.737471521 g=0.738432944 b=0.738591731 )
the ratiance from 2 to 1 point is
radiance_in = (0.000767, 0.012300, 0.000171)
so the radiance from 1 to eye is
radiance_out = radiance_in * white = (0.000565, 0.009083, 0.000126)
the same process is correct for 3->2 and 2->1
but, the process is not correct for 4->3 and 3->2. the radiance from 4->3 is
radiance_in = (0.012569, 0.040196, 0.002296)
3 hit point is light and the BSDF is lambertian and reflectance is white, so radiance from 3 to 2 hit point should be
raidance_out = radiance_in * white =(0.012569, 0.040196, 0.002296) * white = （0.0092，0.0296，0.00169）
but the result from 3 to 2 is
radiance_real = (0.011293, 0.030782, 0.001987)
So, this is strange, the real radiance is bigger than what I computed. What is the problem of my computation?
I know next event estimation, but I am sure 4->3 and 3->2 is not next event estimation, 5->4 is next event. So this is not light sample problem