Question on the Transmission Matrix in three-phase method

Hello everyone,

Recently, I’ve been learning three-phase method. What I found confusing is the direction of BSDF material in Transmission Matrix.

To my understanding from the tutorial, the calculation order is as follows due to the back ray-tracing in Radiance. 1) Vmatrix: points to window surface 2) Tmatrix: BSDF material from test room inside to outside 3) Dmatrix: window surface to sky and ground 4) Smatrix

There is a side A of the BSDF that I want it to face the outside of the test room, and a side B facing inside. During the genBSDF procedure, should I set side A to face the -Z, and side B to face +Z ? Because dctimestep uses Back transmission (inside to outside, +Z to -Z in genBSDF)

I really don’t know if I am getting this right. Thanks a lot for your help.


It is confusing.

You always want your +Z axis to face into the room, as described in the genBSDF man page. The matrix multiplication operation itself does not consider ray direction, but the “Transmission Front” matrix is taken by dctimestep or rmtxop, and this submatrix is computed by the genBSDF “+forward” option.

Note that this is not the default, and if you run genBSDF without “+forward” then dctimestep or rmtxop will compute the “Transmission Front” matrix using reciprocity – a method that is not 100% reliable. So, if your goal is a 3-phase calculation, it is best to use “genBSDF +forward” and you can add “-backward” if you wish to save time in the case where you don’t need both. You need both if you are employing the resulting XML in a rendering (using rpict, rtrace, rcontrib or whatever) that has rays impinging on either side of the material.

I hope this helps.


Hi Greg,

Thanks a lot. The information is lot, and I may need to digest it. :cry: The followings are my understandings which I don’t know if it is right.

  1. Dctimestep will use “Transmission Front” by default, which is generated by genBSDF “+forward”.

  2. The sampling direction of genBSDF “+forward” is from “-Z axis” to “+Z axis”.

  3. If I want the A side of my BSDF to face the outside of my testroom during 3-phase calculation, I should set A side to face the “-Z axis”.

Yes, that all seems correct.


Thanks a lot, Greg. This really helps.