ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/doc/materials.1
Revision: 1.1
Committed: Tue Mar 11 19:20:20 2003 UTC (21 years ago) by greg
Branch: MAIN
CVS Tags: rad3R5
Log Message:
Added documentation to repository

File Contents

# User Rev Content
1 greg 1.1 .\" RCSid "$Id"
2     .\"Print with tbl and eqn or neqn with -ms macro package
3     .vs 12
4     .nr VS 12
5     .nr PD .5v \" paragraph distance (inter-paragraph spacing)
6     .EQ L
7     delim $$
8     .EN
9     .DA
10     .TL
11     Behavior of Materials in RADIANCE
12     .AU
13     Greg Ward
14     .br
15     Lawrence Berkeley Laboratory
16     .NH 1
17     Definitions
18     .LP
19     This document describes in gory detail how each material type in RADIANCE
20     behaves in terms of its parameter values.
21     The following variables are given:
22     .LP
23     .vs 14
24     .nr VS 14
25     .TS
26     center;
27     l8 l.
28     $bold R ( P vec , v hat )$ Value of a ray starting at $P vec$ in direction $v hat$ (in watts/sr/m^2)
29     $P vec sub o$ Eye ray origin
30     $v hat$ Eye ray direction
31     $P vec sub s$ Intersection point of ray with surface
32     $n hat$ Unperturbed surface normal at intersection
33     $a sub n$ Real argument number $n$
34     $bold C$ Material color, $"{" a sub 1 , a sub 2 , a sub 3 "}"$
35     $bold p$ Material pattern value, $"{" 1, 1, 1 "}"$ if none
36     $d vec$ Material texture vector, $[ 0, 0, 0 ]$ if none
37     $b vec$ Orientation vector given by the string arguments of anisotropic types
38     $n sub 1$ Index of refraction on eye ray side
39     $n sub 2$ Index of refraction on opposite side
40     $bold A$ Indirect irradiance (in watts/m^2)
41     $bold A sub t$ Indirect irradiance from opposite side (in watts/m^2)
42     $m hat$ Mirror direction, which can vary with Monte Carlo sampling
43     $t sub s$ Specular threshold (set by -st option)
44     $bold B sub i$ Radiance of light source sample $i$ (in watts/sr/m^2)
45     $q hat sub i$ Direction to source sample $i$
46     $omega sub i$ Solid angle of source sample $i$ (in sr)
47     .TE
48     .vs 12
49     .nr VS 12
50     .LP
51     Variables with an arrow over them are vectors.
52     Variables with a circumflex are unit vectors (ie. normalized).
53     All variables written in bold represent color values.
54     .NH 2
55     Derived Variables
56     .LP
57     The following values are computed from the variables above:
58     .LP
59     .vs 14
60     .nr VS 14
61     .TS
62     center;
63     l8 l.
64     $cos sub 1$ Cosine of angle between surface normal and eye ray
65     $cos sub 2$ Cosine of angle between surface normal and transmitted direction
66     $n hat sub p$ Perturbed surface normal (after texture application)
67     $h vec sub i$ Bisecting vector between eye ray and source sample $i$
68     $F sub TE$ Fresnel coefficient for $TE$-polarized light
69     $F sub TM$ Fresnel coefficient for $TM$-polarized light
70     $F$ Fresnel coefficient for unpolarized light
71     .TE
72     .vs 12
73     .nr VS 12
74     .LP
75     These values are computed as follows:
76     .EQ I
77     cos sub 1 mark ==~ - v hat cdot n hat sub p
78     .EN
79     .EQ I
80     cos sub 2 lineup ==~ sqrt { 1~-~( n sub 1 / n sub 2 )
81     sup 2 (1~-~cos sub 1 sup 2 )}
82     .EN
83     .EQ I
84     n hat sub p lineup ==~ { n hat ~+~ d vec } over { ||~ n hat ~+~ d vec ~|| }
85     .EN
86     .EQ I
87     h vec sub i lineup ==~ q hat sub i ~-~ v hat
88     .EN
89     .EQ I
90     F sub TE lineup ==~ left [ { n sub 1 cos sub 1
91     ~-~ n sub 2 cos sub 2 } over { n sub 1 cos sub 1
92     ~+~ n sub 2 cos sub 2 } right ] sup 2
93     .EN
94     .EQ I
95     F sub TM lineup ==~ left [ {n sub 1 / cos sub 1
96     ~-~ n sub 2 / cos sub 2} over {n sub 1 / cos sub 1
97     ~+~ n sub 2 / cos sub 2} right ] sup 2
98     .EN
99     .EQ I
100     F lineup ==~ 1 over 2 F sub TE ~+~ 1 over 2 F sub TM
101     .EN
102     .NH 2
103     Vector Math
104     .LP
105     Variables that represent vector values are written with an arrow above
106     (eg. $ v vec $).
107     Unit vectors (ie. vectors whose lengths are normalized to 1) have a hat
108     (eg. $ v hat $).
109     Equations containing vectors are implicitly repeated three times,
110     once for each component.
111     Thus, the equation:
112     .EQ I
113     v vec ~=~ 2 n hat ~+~ P vec
114     .EN
115     is equivalent to the three equations:
116     .EQ I
117     v sub x ~=~ 2 n sub x ~+~ P sub x
118     .EN
119     .EQ I
120     v sub y ~=~ 2 n sub y ~+~ P sub y
121     .EN
122     .EQ I
123     v sub z ~=~ 2 n sub z ~+~ P sub z
124     .EN
125     There are also cross and dot product operators defined for vectors, as
126     well as the vector norm:
127     .RS
128     .LP
129     .UL "Vector Dot Product"
130     .EQ I
131     a vec cdot b vec ~==~ a sub x b sub x ~+~ a sub y b sub y ~+~ a sub z b sub z
132     .EN
133     .LP
134     .UL "Vector Cross Product"
135     .EQ I
136     a vec ~ times ~ b vec ~==~ left | matrix {
137     ccol { i hat above a sub x above b sub x }
138     ccol { j hat above a sub y above b sub y }
139     ccol { k hat above a sub z above b sub z }
140     } right |
141     .EN
142     or, written out:
143     .EQ I
144     a vec ~ times ~ b vec ~=~ [ a sub y b sub z ~-~ a sub z b sub y ,~
145     a sub z b sub x ~-~ a sub x b sub z ,~ a sub x b sub y ~-~ a sub y b sub x ]
146     .EN
147     .LP
148     .UL "Vector Norm"
149     .EQ I
150     || v vec || ~==~ sqrt {{v sub x} sup 2 ~+~ {v sub y} sup 2 ~+~ {v sub z} sup 2}
151     .EN
152     .RE
153     .LP
154     Values are collected into a vector using square brackets:
155     .EQ I
156     v vec ~=~ [ v sub x , v sub y , v sub z ]
157     .EN
158     .NH 2
159     Color Math
160     .LP
161     Variables that represent color values are written in boldface type.
162     Color values may have any number of spectral samples.
163     Currently, RADIANCE uses only three such values, referred to generically
164     as red, green and blue.
165     Whenever a color variable appears in an equation, that equation is
166     implicitly repeated once for each spectral sample.
167     Thus, the equation:
168     .EQ I
169     bold C ~=~ bold A^bold B ~+~ d bold F
170     .EN
171     is shorthand for the set of equations:
172     .EQ I
173     C sub 1 ~=~ A sub 1 B sub 1 ~+~ d F sub 1
174     .EN
175     .EQ I
176     C sub 2 ~=~ A sub 2 B sub 2 ~+~ d F sub 2
177     .EN
178     .EQ I
179     C sub 3 ~=~ A sub 3 B sub 3 ~+~ d F sub 3
180     .EN
181     ...
182     .LP
183     And so on for however many spectral samples are used.
184     Note that color math is not the same as vector math.
185     For example, there is no such thing as
186     a dot product for colors.
187     .LP
188     Curly braces are used to collect values into a single color, like so:
189     .EQ I
190     bold C ~=~ "{" r, g, b "}"
191     .EN
192     .sp 2
193     .NH
194     Light Sources
195     .LP
196     Light sources are extremely simple in their behavior when viewed directly.
197     Their color in a particular direction is given by the equation:
198     .EQ L
199     bold R ~=~ bold p^bold C
200     .EN
201     .LP
202     The special light source material types, glow, spotlight, and illum,
203     differ only in their affect on the direct calculation, ie. which rays
204     are traced to determine shadows.
205     These differences are explained in the RADIANCE reference manual, and
206     will not be repeated here.
207     .sp 2
208     .NH
209     Specular Types
210     .LP
211     Specular material types do not involve special light source testing and
212     are thus are simpler to describe than surfaces with a diffuse component.
213     The output radiance is usually a function of one or two other ray
214     evaluations.
215     .NH 2
216     Mirror
217     .LP
218     The value at a mirror surface is a function of the ray value in
219     the mirror direction:
220     .EQ L
221     bold R ~=~ bold p^bold C^bold R ( P vec sub s ,~ m hat )
222     .EN
223     .NH 2
224     Dieletric
225     .LP
226     The value of a dieletric material is computed from Fresnel's equations:
227     .EQ L
228     bold R ~=~ bold p^bold C sub t ( 1 - F )^bold R ( P vec sub s ,~ t hat ) ~+~
229     bold C sub t^F^bold R ( P vec sub s ,~ m hat )
230     .EN
231     where:
232     .EQ I
233     bold C sub t ~=~ bold C sup {|| P vec sub s ~-~ P vec sub o ||}
234     .EN
235     .EQ I
236     t hat ~=~ n sub 1 over n sub 2 v hat ~+~ left ( n sub 1 over n sub 2 cos sub 1
237     ~-~ cos sub 2 right ) n hat sub p
238     .EN
239     .LP
240     The Hartmann constant is used only to calculate the index of refraction
241     for a dielectric, and does not otherwise influence the above equations.
242     In particular, transmitted directions are not sampled based on dispersion.
243     Dispersion is only modeled in a very crude way when a light source is
244     casting a beam towards the eye point.
245     We will not endeavor to explain the algorithm here as it is rather
246     nasty.
247     .LP
248     For the material type "interface", the color which is used for $bold C$
249     as well as the indices of refraction $n sub 1$ and $n sub 2$ is determined
250     by which direction the ray is headed.
251     .NH 2
252     Glass
253     .LP
254     Glass uses an infinite series solution to the interreflection inside a pane
255     of thin glass.
256     .EQ L
257     bold R ~=~ bold p^bold C sub t^bold R ( P vec sub s ,~ t hat )
258     left [ 1 over 2 {(1 ~-~ F sub TE )} sup 2 over {1 ~-~ F sub TE sup 2
259     bold C sub t sup 2 } ~+~ 1 over 2 {(1 ~-~ F sub TM )} sup 2
260     over {1 ~-~ F sub TM sup 2 bold C sub t sup 2 } right ] ~+~
261     bold R ( P vec sub s ,~ m hat ) left [ 1 over 2 {F sub TE (1 ~+~
262     (1 ~-~ 2 F sub TE ) bold C sub t sup 2 )} over {1 ~-~ F sub TE sup 2
263     bold C sub t sup 2 } ~+~ 1 over 2 {F sub TM (1 ~+~
264     (1 ~-~ 2 F sub TM ) bold C sub t sup 2 )} over {1 ~-~ F sub TM sup 2
265     bold C sub t sup 2 } right ]
266     .EN
267     where:
268     .EQ I
269     bold C sub t ~=~ bold C sup {(1/ cos sub 2 )}
270     .EN
271     .EQ I
272     t hat ~=~ v hat~+~2(1^-^n sub 2 ) d vec
273     .EN
274     .sp 2
275     .NH
276     Basic Reflection Model
277     .LP
278     The basic reflection model used in RADIANCE takes into account both specular
279     and diffuse interactions with both sides of a surface.
280     Most RADIANCE material types are special cases of this more general formula:
281     .EQ L (1)
282     bold R ~=~ mark size +3 sum from sources bold B sub i omega sub i
283     left { Max(0,~ q hat sub i cdot n hat sub p )
284     left ( bold rho sub d over pi ~+~ bold rho sub si right ) ~+~
285     Max(0,~ - q hat sub i cdot n hat sub p )
286     left ( bold tau sub d over pi ~+~ bold tau sub si right ) right }
287     .EN
288     .EQ L
289     lineup ~~+~~ bold rho sub s bold R ( P vec sub s ,~ m hat ) ~~+~~
290     bold tau sub s bold R ( P vec sub s ,~ t hat )
291     .EN
292     .EQ L
293     lineup ~~+~~ bold rho sub a over pi bold A ~~+~~
294     bold tau sub a over pi bold A sub t
295     .EN
296     Note that only one of the transmitted or reflected components in the first
297     term of the above equation can be non-zero, depending on whether the given
298     light source is in front of or behind the surface.
299     The values of the various $ bold rho $ and $ bold tau $ variables will be
300     defined differently for each material type, and are given in the following
301     sections for plastic, metal and trans.
302     .NH 2
303     Plastic
304     .LP
305     A plastic surface has uncolored highlights and no transmitted component.
306     If the surface roughness ($a sub 5$) is zero or the specularity
307     ($bold r sub s$) is greater than the threshold ($t sub s$)
308     then a ray is traced in or near the mirror direction.
309     An approximation to the Fresnel reflection coefficient
310     ($bold r sub s ~approx~ 1 - F$) is used to modify the specularity to account
311     for the increase in specular reflection near grazing angles.
312     .LP
313     The reflection formula for plastic is obtained by adding the following
314     definitions to the basic formula given in equation (1):
315     .EQ I
316     bold rho sub d ~=~ bold p^bold C (1 ~-~ a sub 4 )
317     .EN
318     .EQ I
319     bold rho sub si ~=~ left {~ lpile {{bold r sub s
320     {f sub s ( q hat sub i )} over
321     sqrt{( q hat sub i cdot n hat sub p ) cos sub 1}} above
322     0 } ~~~ lpile { {if~a sub 5 >0} above otherwise }
323     .EN
324     .EQ I
325     bold rho sub s ~=~ left {~ lpile {{bold r sub s} above 0 } ~~~
326     lpile {{if~a sub 5^=^0~or~bold r sub s^>^t sub s} above otherwise }
327     .EN
328     .EQ I
329     bold rho sub a ~=~ left {~ lpile {{ bold p^bold C^(1~-~bold r sub s )} above
330     {bold p^bold C}} ~~~ lpile
331     {{if~a sub 5^=^0~or~bold r sub s^>^t sub s} above otherwise }
332     .EN
333     .EQ I
334     bold tau sub a ,~ bold tau sub d ,~ bold tau sub si ,~ bold tau sub s ~=~ 0
335     .EN
336     .EQ I
337     bold r sub s ~=~ a sub 4
338     .EN
339     .EQ I
340     f sub s ( q hat sub i ) ~=~ e sup{[ ( h vec sub i cdot n hat sub p ) sup 2
341     ~-~ || h vec || sup 2 ]/
342     ( h vec sub i cdot n hat sub p ) sup 2 / alpha sub i}
343     over {4 pi alpha sub i}
344     .EN
345     .EQ I
346     alpha sub i ~=~ a sub 5 sup 2 ~+~ omega sub i over {4 pi}
347     .EN
348     .LP
349     There is one additional caveat to the above formulas.
350     If the roughness is greater than zero and the reflected ray,
351     $bold R ( P vec sub s ,~ r hat )$,
352     intersects a light source, then it is not used in the calculation.
353     Using such a ray would constitute double-counting, since the direct
354     component has already been included in the source sample summation.
355     .NH 2
356     Metal
357     .LP
358     Metal is identical to plastic, except for the definition of $ bold r sub s $,
359     which now includes the color of the material:
360     .EQ I
361     bold r sub s ~=~
362     "{" a sub 1 a sub 4 ,~
363     a sub 2 a sub 4 ,~
364     a sub 3 a sub 4 "}"
365     .EN
366     .NH 2
367     Trans
368     .LP
369     The trans type adds transmitted and colored specular and diffuse components
370     to the colored diffuse and uncolored specular components of the plastic type.
371     Again, the roughness value and specular threshold determine
372     whether or not specular rays will be followed for this material.
373     .EQ I
374     bold rho sub d ~=~ bold p^bold C^(1 ~-~ a sub 4 ) ( 1 ~-~ a sub 6 )
375     .EN
376     .EQ I
377     bold rho sub si ~=~ left {~ lpile {{bold r sub s
378     {f sub s ( q hat sub i )} over
379     sqrt{( q hat sub i cdot n hat sub p ) cos sub 1}} above
380     0 } ~~~ lpile { {if~a sub 5 >0} above otherwise }
381     .EN
382     .EQ I
383     bold rho sub s ~=~ left {~ lpile {{bold r sub s} above 0 } ~~~
384     lpile {{if~a sub 5^=^0~or~bold r sub s^>^t sub s} above otherwise }
385     .EN
386     .EQ I
387     bold rho sub a ~=~ left {~ lpile {{ bold p^bold C^
388     (1~-~bold r sub s ) (1~-~a sub 6 )} above
389     {bold p^bold C^(1~-~a sub 6 )}} ~~~ lpile
390     {{if~a sub 5^=^0~or~bold r sub s^>^t sub s} above otherwise }
391     .EN
392     .EQ I
393     bold tau sub d ~=~ a sub 6 (1~-~bold r sub s ) (1~-~a sub 7 )^bold p^bold C
394     .EN
395     .EQ I
396     bold tau sub si ~=~ left {~ lpile {{a sub 6 a sub 7 (1~-~bold r sub s )^
397     bold p^bold C {g sub s ( q hat sub i )} over
398     sqrt{(- q hat sub i cdot n hat sub p ) cos sub 1}} above
399     0 } ~~~ lpile { {if~a sub 5^>^0} above otherwise }
400     .EN
401     .EQ I
402     bold tau sub s ~=~ left {~ lpile {{a sub 6 a sub 7 (1~-~bold r sub s )^
403     bold p^bold C} above 0} ~~~ lpile
404     {{if~a sub 5^=^0~or~a sub 6 a sub 7 (1~-~bold r sub s )^>^t sub s}
405     above otherwise}
406     .EN
407     .EQ I
408     bold tau sub a ~=~ left {~ lpile {{a sub 6 (1~-~bold r sub s ) (1~-~a sub 7 )
409     ^bold p^bold C} above {a sub 6 (1~-~bold r sub s )^bold p^bold C}} ~~~
410     lpile {{if~a sub 5^=^0~or~a sub 6 a sub 7 (1~-~bold r sub s )^>^t sub s}
411     above otherwise}
412     .EN
413     .EQ I
414     bold r sub s ~=~ a sub 4
415     .EN
416     .EQ I
417     f sub s ( q hat sub i ) ~=~ e sup{[ ( h vec sub i cdot n hat sub p ) sup 2
418     ~-~ || h vec || sup 2 ]/
419     ( h vec sub i cdot n hat sub p ) sup 2 / alpha sub i}
420     over {4 pi alpha sub i}
421     .EN
422     .EQ I
423     alpha sub i ~=~ a sub 5 sup 2 ~+~ omega sub i over {4 pi}
424     .EN
425     .EQ I
426     g sub s ( q hat sub i ) ~=~ e sup{( 2 q hat sub i cdot t hat~-~2)/ beta sub i}
427     over {pi beta sub i}
428     .EN
429     .EQ I
430     t hat ~=~ {v hat~-~d vec}over{|| v hat~-~d vec ||}
431     .EN
432     .EQ I
433     beta sub i ~=~ a sub 5 sup 2 ~+~ omega sub i over pi
434     .EN
435     .LP
436     The same caveat applies to specular rays generated for trans type as did
437     for plastic and metal.
438     Namely, if the roughness is greater than zero and the reflected ray,
439     $bold R ( P vec sub s ,~ r hat )$,
440     or the transmitted ray,
441     $bold R ( P vec sub s ,~ t hat )$,
442     intersects a light source, then it is not used in the calculation.
443     .NH 2
444     Anisotropic Types
445     .LP
446     The anisotropic reflectance types (plastic2, metal2, trans2) use the
447     same formulas as their counterparts with the exception of the
448     exponent terms, $f sub s ( q hat sub i )$ and
449     $g sub s ( q hat sub i )$.
450     These terms now use an additional vector, $b vec$, to
451     orient an elliptical highlight.
452     (Note also that the argument numbers for the type trans2 have been
453     changed so that $a sub 6$ is $a sub 7$ and $a sub 7$ is $a sub 8$.)\0
454     .EQ I
455     f sub s ( q hat sub i ) ~=~
456     1 over {4 pi sqrt {alpha sub ix alpha sub iy} }
457     exp left [ -^{{( h vec sub i cdot x hat )} sup 2 over{alpha sub ix}
458     ~+~ {( h vec sub i cdot y hat )} sup 2 over{alpha sub iy}} over
459     {( h vec sub i cdot n hat sub p ) sup 2}right ]
460     .EN
461     .EQ I
462     x hat ~=~ y hat~times~n hat sub p
463     .EN
464     .EQ I
465     y hat ~=~ {n hat sub p~times~b vec}over{|| n hat sub p~times~b vec ||}
466     .EN
467     .EQ I
468     alpha sub ix ~=~ a sub 5 sup 2 ~+~ omega sub i over {4 pi}
469     .EN
470     .EQ I
471     alpha sub iy ~=~ a sub 6 sup 2 ~+~ omega sub i over {4 pi}
472     .EN
473     .EQ I
474     g sub s ( q hat sub i ) ~=~
475     1 over {pi sqrt {beta sub ix beta sub iy} }
476     exp left [ {{( c vec sub i cdot x hat )} sup 2 over{beta sub ix}
477     ~+~ {( c vec sub i cdot y hat )} sup 2 over{beta sub iy}} over
478     {{( n hat sub p cdot c vec sub i )}sup 2 over
479     {|| c vec sub i ||}sup 2 ~-~ 1}
480     right ]
481     .EN
482     .EQ I
483     c vec sub i ~=~ q hat sub i~-~t hat
484     .EN
485     .EQ I
486     t hat ~=~ {v hat~-~d vec}over{|| v hat~-~d vec ||}
487     .EN
488     .EQ I
489     beta sub ix ~=~ a sub 5 sup 2 ~+~ omega sub i over pi
490     .EN
491     .EQ I
492     beta sub iy ~=~ a sub 6 sup 2 ~+~ omega sub i over pi
493     .EN
494     .NH 2
495     BRDF Types
496     .LP
497     The more general brdf types (plasfunc, plasdata, metfunc, metdata,
498     BRTDfunc) use the same basic formula given in equation (1),
499     but allow the user to specify $bold rho sub si$ and $bold tau sub si$ as
500     either functions or data, instead of using the default
501     Gaussian formulas.
502     Note that only the exponent terms, $f sub s ( q hat sub i )$ and
503     $g sub s ( q hat sub i )$ with the radicals in their denominators
504     are replaced, and not the coefficients preceding them.
505     It is very important that the user give properly normalized functions (ie.
506     functions that integrate to 1 over the hemisphere) to maintain correct
507     energy balance.