how should we handle ClearVolume/HomogenousVolume Tau() if one of the components are zero?
The RGB -> spectrum conversion may lead to some portion of the spectrum being negative, so I added a clamp to the absorption (in SigmaA) as the negative values caused the Exp in Scatter() to blow up.
The problem is that I forgot that of course zero times infinity = NaN, and ray.maxt is often +infinity...
So, should we instead clamp the absorption to some very small value, say 1e-30 or something? Perhaps we could add a check to see if all components are black, in which case we return 0, otherwise clamp?
If not, what would be the right thing to do? If sigma_a is absolutely zero then it should of course be zero, but one can imagine the input going to zero, in which case the value is indeterminate.
May contain traces of nuts.