usage of plasdata material

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;
phi(x,y,z) = acos( -(x*Dx+y*Dy+ z*Dz));

theta(x,y,z) = acos(Dx*Nx+Dy*Ny+Dz*Nz)*180/PI;

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?

Please take the noob out of the dark :slight_smile:

Cheers,

Uta

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" <[email protected]>
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 :slight_smile:

Cheers,

Uta