[Radiance-general] Calculating diffuse component in a BRTDfunc
atelier iebele abel
atelier at iebele.nl
Fri Sep 30 16:22:43 CEST 2005
--- (previous message was messed up a bit, hope this times it is better) ---
Hi all,
I am writing a BRTD material which I want to use to change the diffuse component of a surface, related to a certain direction and the surface
normal. Radiance reports: "error bad arguments for BRTDfunc
I get the impression that the rfdif, gfdif, bfdif, rbdif, gbdif and bbdif are not variables ?
If these are not variables, how can I change/calculate/define the diffuse component in a BRTDfunc?
See the bold lines of the example in my cal file.
I appreciate any suggestions !
Iebele
<--- snip ---->
{
directional.cal
arg10 red diffuse
arg11 green diffuse
arg12 blue diffuse
arg13 direction x
arg14 direction y
arg15 direction z
}
{ RGB values for the reflection }
valr = arg(10);
valg = arg(11);
valb = arg(12);
xdir = arg(13);
ydir = arg(14);
zdir = arg(15);
{ dot product direction and normal }
DdN = (xdir*Nx)+(ydir*Ny)+(zdir*Nz);
{ always return a positive value }
multi = if(DdN, DdN, -DdN) ;
*reflr* = CrP + (multi*valr) ;
*reflg* = CgP + (multi*valg) ;
*reflb* = CbP + (multi*valb) ;
{
example usage:
void BRTDfunc LAYER114
10
0 0 0 / reflection
0 0 0 / specular
0 0 0
directional.cal
0
15
*reflr reflg reflb* / diffuse front
*reflr reflg reflb* / diffuse back
0 0 0 / trans
0.8 0.7 0.6 / color of surface
0.57735 0.57735 0.57735 / vector defining bright side of surface
}
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://radiance-online.org/pipermail/radiance-general/attachments/20050930/633ef963/attachment.html
More information about the Radiance-general
mailing list