[Radiance-general] Re: usage of plasdata material
Greg Ward
gregoryjward at gmail.com
Sat Aug 16 23:03:42 PDT 2008
Dear Uta,
You may be a newbie or "noob," but your question is fairly advanced.
Not many people have used the plasdata type, and you have gotten most
of the specification correct. Well done. My additional comments are
inline, below:
> From: "Uta Poppe" <uta.poppe at yahoo.de>
> Date: August 12, 2008 12:27:03 PM PDT
>
> Hello,
>
> I have some questions regarding the plasdata material. I couldn' t
> find a documentation about it, thats why i must ask you.
> The material definition is:
>
> void plasdata blue
> 6 noop daten2.dat blue.cal sigma phi theta
> 0
> 4 0.1973 0.35612 0.6353 1
>
> The unit of the values is (1/sr), I think no further computation is
> needed in this case, thats why I took the "noop"-Argument.
>
> the cal-file contains only the three angles:
> sigma(x,y,z) = acos(x*Nx+y*Ny+z*Nz)*180/PI;
This is correct, but I recommend using Acos() rather than cos()
because it avoids problems when the dot product is epsilon greater
than 1.0.
> phi(x,y,z) = acos( -(x*Dx+y*Dy+ z*Dz));
>
Are you sure about this one? You seem to be computing the angle
between incoming and outgoing vectors (in radians), rather than the
azimuthal angle between projected vectors that most radially
symmetric BRDFs require. I think you want an atan2() expression.
> theta(x,y,z) = acos(Dx*Nx+Dy*Ny+Dz*Nz)*180/PI;
>
A shortcut for this is:
theta(x,y,z) = 180/PI * Acos(Rdot);
Putting the 180/PI out front (and/or enclosing it in parens) saves
evaluation, since constant subexpressions are replaced by their values.
> sigma should define the angle between incoming light and surface
> normal, theta is the one between leaving light and normal and phi
> is the one between theta and sigma ... and I'm not sure, wheter the
> above calculation is right.
>
> The next thing is, that I'm a little confused about the meaning of
> the last argument in the last line of the plasdata material. The
> materials describtion says, that it is a parameter for defining
> specularity (?). But when I have a huge amount of reflectance data,
> why do i need another parameter? In which way does it influence the
> computation of my reflectance values? In the current material
> definition it is set to one because, setting it to zero I have a
> plastic material as it seems. How can I obtain the right value?
>
The difference between plasdata and metdata is that metdata uses the
first three real arguments for the RGB color of the specular
highlight as well as the diffuse component, whereas plasdata only
uses it for the diffuse. Note that the diffuse component is the
fraction of the BRDF that is constant in all directions. If you have
not subtracted this constant (Lambertian) reflection from your BRDF,
then you need to give the specularity as 1, and your surface will in
fact be white, no matter what you have for the first three arguments.
Please note that none of the BRDF types in Radiance offers a complete
solution to the global illumination equation. Only highlights from
light sources will use this data properly. Interreflections will
consider the entire BRDF to be "diffuse" rather than directional.
This is a limitation of the software.
Best,
-Greg
> Please take the noob out of the dark :)
>
> Cheers,
>
> Uta
More information about the Radiance-general
mailing list