To make debugging easier for debugging I make the following restrictions at the moment:
- 1. The data is homogeneous, so null collisions don't play a role at the moment
2. The scattering coefficient is zero, so lighting should not factor into the result at the moment
3. Only single scattering is considered
My implementation and the results can be viewed in this gist.
Because my data is homogeneous I can compare against plain tracking, and find that the results match for cases where the absorption coefficient is not spectrally refined (apart from noise). In this case the spectral tracking weights simply are vec(1), so I guess it is the same algorithm as delta tracking.
As soon as I introduce a spectrally refined absorption coefficient, however, I no longer understand what is going on. With the data I'm using, I basically only have to care about absorption, but even for that case I cannot figure out how I have to apply the weight to the computed transmittance. For normal delta tracking the transmittance is always zero when a collision happens, but for spectral tracking a compensation is necessary. Assuming the compensation weights are calculated correctly, something is wrong with the way I apply them.
Any idea how I should apply the weights to the transmittance?