Problem with aBSDF model


I have a problem with the aBSDF function. Trying to model a glass with a BSDF distribution, I have compared the result using BSDF and aBSDF object.

Even if the aBSDF show rendering with a better viewing of shadows, the mean lighting of the zone is significatively lower (until 40% less) than the results with BSDF. Comparing with a classic glass with equivalent transmission, it seems than the problem come from the aBSDF model.


Do you know where this difference can come from ?

I tried to understand the source code, and the compute_through function specific to aBSDF. I’m not sure to understand correctly the strategy with the near peak areas but I wonder if we shouldn’t use vpeak + vsum in the cthru attribution unlik only vpeak.

There are certainly differences in how the transmission is computed between BSDF and aBSDF, and some assumptions that must be met for correct behavior.

The problem could be associated with your XML file. How was it created? Is it a Klems representation or a tensor tree? Can you post it somewhere, and describe what you believe is an equivalent glass material?


Hi greg,

Thank you for Answering. The xml file is a Klems model created with genbsdf methode. I saw the same problem with Tensor tree model.

Here are the xml and simulation file :

For the equivalent glass material, I just take the transmitance given by the BSDF viewer at the incidence angle and calculate the transmitivity for glass object. The idee was just to czalculate the mean light level in the floor of the room.

Thanks – can you also include the input file you used with genBSDF (AlbaS.rad)? The light seems to be spreading more than I might expect.


Not sure I can acces to this source, I’m going to do my best.

In all cases, even if the conditions are not standard enough to represent the correct light distribution, it shoult at least respect the energy conservation and keep the same mean light level entering the room, isn’t it ?

The Klems distribution you are using does not provide enough resolution to reliably determine whether there is a peak or not, so you should only apply the aBSDF type if you know in fact that the material you are working with has a strong “vision” component – a peak in the through direction. If it scatters light significantly, as seems to be happening in your XML data, then you are better off using the regular BSDF type. If you started from high-resolution tensor tree, this decision would be less of an issue, as the peak extraction should work more reliably with detailed data.

I try with a tensor tree distribution ( ) and even if the result is better, I still have 15% less energy entering the room.

In the test I’m doing the model react as if the near peak areas are ingore in the global contribution :

Yes, the peak extraction method necessarily must ignore near-peak radiation to avoid double-counting. This is tricky to do, but may be improved if you compute a higher-resolution tensor-tree.

In any case, if you like the result you get from a regular BSDF, then you should have no need of the aBSDF type, which is there to help with highly peaked distributions. BSDFs with soft peaks might be handled better with the BSDF type.

The basic test is, if you can see through the material and recognize things on the other side, then the aBSDF type will probably work better. If things are blurred or distorted by the material, then the BSDF type is probably best.