I want to experiment with the texture of the materials by modifying the
x, y and/or z normals of the surfaces in order to see how the reflected
light changes in its characteristics. However, when I modify the
normals, using texfunc as the following example, apparently, just the
main normal is modified.
void texfunc id
3 Px*A1 Py*A2 PZ*A3
0
3 A1 A2 A3
Does anyone have any suggestions on how I can make a "grid of normals"
in order to modify the normals of smaller regions of the surface? and
how can I change the scale of that "grid"?
Thanks in advance,
Adriana Lira
Master in Design Studies, 2003
Candidate for Doctor in Design Studies
Harvard Graduate School of Design
I want to experiment with the texture of the materials by modifying the
x, y and/or z normals of the surfaces in order to see how the reflected
light changes in its characteristics. However, when I modify the
normals, using texfunc as the following example, apparently, just the
main normal is modified.
void texfunc id
3 Px*A1 Py*A2 PZ*A3
0
3 A1 A2 A3
Does anyone have any suggestions on how I can make a "grid of normals"
in order to modify the normals of smaller regions of the surface? and
how can I change the scale of that "grid"?
Thanks in advance,
Adriana Lira
Master in Design Studies, 2003
Candidate for Doctor in Design Studies
Harvard Graduate School of Design
What do you want your surface to look like? What do you want your normals to do?
The string arguments of the "texfunc" primitive define expressions for a "perturbation" of the surface normal, i.e., a value to be added to the default surface normal. In your example, depending on the values of A1, A2, and A3 (and assuming "PZ" should have been "Pz"), you would get a surface normal that would change gradually according to the position in 3-dimensional space, forcing whatever object was covered to have a surface normal resembling that of a sphere the larger the object became. This seems a very strange goal to me.
I want to experiment with the texture of the materials by modifying the
x, y and/or z normals of the surfaces in order to see how the reflected
light changes in its characteristics. However, when I modify the
normals, using texfunc as the following example, apparently, just the
main normal is modified.
void texfunc id
3 Px*A1 Py*A2 PZ*A3
0
3 A1 A2 A3
Does anyone have any suggestions on how I can make a "grid of normals"
in order to modify the normals of smaller regions of the surface? and
how can I change the scale of that "grid"?
Thanks in advance,
Adriana Lira
Master in Design Studies, 2003
Candidate for Doctor in Design Studies
Harvard Graduate School of Design
In effect, what I get is the resemblance of a shpere the larger the
object. For this reason, I feel that I'm using "texfunc" in an improper
way for what I need. My objective is to modify the x, y and/or z normals
of a surface in order to analize how much R, G and/or B is being
absorbed/reflected. I know that depending on the texture of a surface, for
example, shortwavelenghs of the spectrum are more reflected than the short
waves of the spectrum. What I need is to create a "bumpy" surface in order
to see how much blue is reflected depending on the scale of this
"bumpiness" ( from very small scale-microscale, if possible, to
macroscale) and by having control of the perturbation of the x, y and z
normals. Is there a logic way in how to do this?
Adriana
Hi Adriana,
What do you want your surface to look like? What do you want your
normals to do?
The string arguments of the "texfunc" primitive define expressions
for a "perturbation" of the surface normal, i.e., a value to be added
to the default surface normal. In your example, depending on the
values of A1, A2, and A3 (and assuming "PZ" should have been "Pz"),
you would get a surface normal that would change gradually according
to the position in 3-dimensional space, forcing whatever object was
covered to have a surface normal resembling that of a sphere the
larger the object became. This seems a very strange goal to me.
I want to experiment with the texture of the materials by
modifying the
x, y and/or z normals of the surfaces in order to see how the
reflected
light changes in its characteristics. However, when I modify the
normals, using texfunc as the following example, apparently, just the
main normal is modified.
void texfunc id
3 Px*A1 Py*A2 PZ*A3
0
3 A1 A2 A3
Does anyone have any suggestions on how I can make a "grid of
normals"
in order to modify the normals of smaller regions of the surface? and
how can I change the scale of that "grid"?
Thanks in advance,
Adriana Lira
Master in Design Studies, 2003
Candidate for Doctor in Design Studies
Harvard Graduate School of Design
If you are hoping to model diffraction effects -- where geometric optics break down and wave optics take over -- you will be disappointed to learn that Radiance does not handle this case. Few ray-tracing systems do. Diffraction becomes important when the scale of surface variations (texture or thin films) is on the order of the wavelength of light, less than a micron or so. For this, you need a tool such as Code V from ORA:
In effect, what I get is the resemblance of a shpere the larger the
object. For this reason, I feel that I'm using "texfunc" in an improper
way for what I need. My objective is to modify the x, y and/or z normals
of a surface in order to analize how much R, G and/or B is being
absorbed/reflected. I know that depending on the texture of a surface, for
example, shortwavelenghs of the spectrum are more reflected than the short
waves of the spectrum. What I need is to create a "bumpy" surface in order
to see how much blue is reflected depending on the scale of this
"bumpiness" ( from very small scale-microscale, if possible, to
macroscale) and by having control of the perturbation of the x, y and z
normals. Is there a logic way in how to do this?