[Radiance-general] diffuse transmission of BRTDfunc

Jan Wienold jan.wienold at epfl.ch
Wed Aug 5 02:11:39 PDT 2015


Hi all,

I'm a bit stuck by the use of the "old-fashioned" BRTDfunc. Maybe it is 
a silly question, but I couldn't find anything about this in the 
discussions so far.

What I want to do is to modify the diffuse transmitted light by a 
function and using the material BRTDfunc. For the specular transmission 
and reflection this works pretty well, a function can be defined in a 
user specified function in a cal file.
But if I try to do this for the diffuse component, it immediately fails. 
In addition (or maybe the same issue) the is a problem in parsing. If I 
specify for "rbrtd gbrtd bbrtd" and "rtdif gtdif btdif " 0.1 0.1 0.1, 
the function works properly. But using .1 instead 0.1 it fails as well.
It always says "undefined function" in both cases.
Any idea?
if it is possible to change the diffuse behavior, how would it be 
possible? And how can I access the angle to the light source? Rdot is 
giving me only the angle of incidence from the incoming ray to the 
surface normal, but not between light source and surface normal.
below a simple example.
thanks a lot

Jan


example of BRTDfunc working properly:

void BRTDfunc testmat
10 0 0 0
dirtrans dirtrans dirtrans
0.1 0.1 0.1
testfunc.cal
0
9 0.2 0.2 0.2
0.2 0.2 0.2
0.1 0.1 0.1

and testfunc.cal is (for all cases)

{test functionfile}
dirtrans=0.25*Rdot*Rdot;
diftrans=0.3*sqrt(Rdot*Rdot);

example of BRTDfunc NOT working:

void BRTDfunc testmat
10 0 0 0
dirtrans dirtrans dirtrans
.1 .1 .1
testfunc.cal
0
9 0.2 0.2 0.2
0.2 0.2 0.2
.1 .1 .1

or also not working:

void BRTDfunc testmat
10 0 0 0
dirtrans dirtrans dirtrans
diftrans diftrans diftrans
testfunc.cal
0
9 0.2 0.2 0.2
0.2 0.2 0.2
diftrans diftrans diftrans





-- 
Dr.-Ing.  Jan Wienold
Ecole Polytechnique Fédérale de Lausanne (EPFL)
EPFL ENAC IA LIPID

http://people.epfl.ch/jan.wienold
LE 1 111 (Office)
Phone    +41 21 69 30849




More information about the Radiance-general mailing list