I am trying to transition some Matlab scripts for performing daylight simulation using the three phase method which are based on the deprecated tutorial by Andy McNeil (using calls directly to rcontrib) to the new method, as explained in Sarith Subramaniam’s tutorial (using the rfluxmtx command). In doing so I found contrasting results in my implementation of these two methods.
To check whether I am using them correctly I redid example 1 from the Andy McNeil tutorial with both methods. Unfortunately I cannot reproduce the results as in the example with rfluxmtx using (largely) the same settings.
Example one of the tutorial gives the illuminance on 6 sensor points (the first being outside), for three BSDF alternatives with a CIE clear sunny at 21st of December 15:00.
Deeper into the space I am getting much lower illuminance levels when using rfluxmtx, dropping even far below 500 lux where the rcontrib method predicts illuminance above 500 lux (see the images below). I also ran a regular simulation with rtrace (with BSDF material and high settings) for the no-blinds case.
Does anyone have a suggestion of what I might be doing wrong, or whether these differences are to be expected? I noticed in the verbose reporting of rfluxmtx that it calls reinhartb.cal rather than reinhart.cal and that the –b and –bn arguments of rcontrib are assigned in a different manner.
My matlab scripts will not be very legible so I have put the commands that are sent to Radiance in two text files (dropboxLinks: one for rcontrib and one for rfluxmtx) together with the contents of the files describing the scene. Below I have summarized the most important commands (materials are contained within the room and window definitions):
3 Phase commands rcontrib:
_oconv …\Radiance\objects\room.rad …\Radiance\objects\windows.rad …\Radiance\objects\ground.rad > …\Radiance\LoE_vmx.oct
(In the Subramariam tutorial the ground is contained within the octree also for the VMX so to be consistent I did the same here).
rcontrib -f klems_full.cal -b kbinS -bn Nkbins -m windowglow -I+ -ab 12 -ad 50000 -lw 2e-5 …\Radiance\LoE_vmx.oct < …/Radiance/data/photocells.pts > …/Radiance/matrices/vmx/photocellsOneWindow.vmx_
oconv …\Radiance\objects\room.rad …\Radiance\objects\ground.rad …\Radiance\skies\sky_white1.rad > …\Radiance\LoE_dmx.oct_
genklemsamp -vd 0 -1 0 …\Radiance\objects\windows.rad | rcontrib -c 1000 -e MF:4 -f reinhart.cal -b rbin -bn Nrbins -m sky_glow -faf …\Radiance\LoE_dmx.oct > …/Radiance/matrices/dmx/southWindow_one.dmx_
dctimestep -h …/Radiance/matrices/vmx/photocellsOneWindow.vmx …/Radiance/data/McNEILtut_singleClr.xml …/Radiance/matrices/dmx/southWindow_one.dmx …/Radiance/skiesVect/12_21_15.skv | rcalc -e “$1=179*($10.265+$20.670+$3*0.065)” > …/Radiance/results/illum_122115_clear.dat_
3 Phase commands rfluxmtx: _
oconv -f…/Radiance/objects/room.rad …/Radiance/objects/ground.rad > …/Radiance/octrees/model_rflx.oct_
void glow generic_glass_Full
4 1.000 1.000 1.000 0
#@rfluxmtx h=kf u=Z
generic_glass_Full polygon WindowFull
12 0.5 -.15 1
0.5 -.15 2
3.5 -.15 2
3.5 -.15 1
rfluxmtx -v -I+ -ab 12 -ad 50000 -lw 0.00002 -y 6 - …/Radiance/varShading/window_200.rad -i …/Radiance/octrees/model_rflx.oct < …/Radiance/data/photocells.pts > …/Radiance/matrices/vmx/photocellsWindow_200.vmx_
#@rfluxmtx u=+Y h=u
void glow groundglow
4 1 1 1 0
groundglow source ground
4 0 0 -1 180
#@rfluxmtx u=+Y h=r4
void glow skyglow
4 1 1 1 0
skyglow source skydome
4 0 0 1 180
rfluxmtx -v -ff -ab 4 -ad 1000 -lw 0.001 -c 1000 …/Radiance/varShading/window_200.rad …/Radiance/skies/sky_white1.rad -i …/Radiance/octrees/model_rflx.oct > …/Radiance/matrices/dmx/southWindow_200.dmx_
(I also tried using the rcontrib defaults as in the other method but this did not change much)
dctimestep …/Radiance/matrices/vmx/photocellsWindow_200.vmx …/Radiance/data/McNEILtut_singleClr.xml …/Radiance/matrices/dmx/southWindow_200.dmx …/Radiance/skiesVect/12_21_15.skv | rmtxop -fa -c 47.435 119.93 11.635 -> …/Radiance/results/illum_122115_clear.dat_