home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
gondwana.ecr.mu.oz.au/pub/
/
Graphics.tar
/
Graphics
/
papers
/
musg89a.ms.Z
/
musg89a.ms
Wrap
Text File
|
1991-02-06
|
89KB
|
3,956 lines
.\" "Prisms and Rainbows"
.\" F. K. Musgrave
.\" print using -ms macros (e.g., "troff -ms filename")
.\"
.\" @(#)tmac.vgrind 1.2 86/10/08 SMI; from UCB 4.3 beta
'ss 23
'ds _ \d\(mi\u
'ps 9p
'vs 10p
'ds - \(mi
'ds / \\h'\\w' 'u-\\w'/'u'/
'ds /* \\h'\\w' 'u-\\w'/'u'/*
'bd B 3
'bd S B 3
'nr cm 0
'nf
'de vH
'ev 2
'if t 'if !\nv 'tl '\-\-''\-\-'
'ft 1
'sp .35i
'tl '\s14\f3\\*(=F\fP\s0'\\*(=H'\f3\s14\\*(=F\fP\s0'
'sp .25i
'ft 1
\f2\s12\h'\\n(.lu-\w'\\*(=f'u'\\*(=f\fP\s0\h'|0u'
.sp .05i
'ev
'ds =G \\*(=F
..
'de vF
'ev 2
'sp .35i
'tl '\f2\\*(=M''Page % of \\*(=G\fP'
'bp
'ev
'ft 1
'if \\n(cm=1 'ft 2
..
'de ()
'pn 1
..
'de +C
'nr cm 1
'ft 2
'ds +K
'ds -K
..
'de -C
'nr cm 0
'ft 1
'ds +K \f3
'ds -K \fP
..
'+C
'-C
'am +C
'ne 3
..
'de FN
\f2\s14\h'\\n(.lu-\w'\\$1'u'\\$1\fP\s0\h'|0u'\c
.if \\nx .tm \\$1 \\*(=F \\n%
'ds =f \&...\\$1
..
'de FC
.if \\nx .tm \\$1 \\*(=F \\n%
'ds =f \&...\\$1
..
'de -F
'rm =f
..
'ft 1
'lg 0
'-F
.EQ
.nr 99 \n(.s
.nr 98 \n(.f
.ps 10
.ft 2
.ps 12
.ft 2
.ps \n(99
.ft \n(98
.EN
.GO
.nr PS 12
.nr VS 14
.\"--------------------
.\" As required for the typesetting of the paper
.nr PO 1.5i
.nr LL 4.25i
.nr HM 1.25i
.nr FM 1.25i
.ds CH \\n(PN
.ds CF
.\" end Grad Div
.\"--------------------
.\" Revision Bar - places vertical bar in right margin beside text
.\" between .RB and .RE.
.\" Change to '.mc' to get rid of revision bars.
.de RB
.\" .mc \s+9\(br\s-9
.mc
..
.de RE
.mc
..
.\" end revision Bar
.\"--------------------
.LP
.ls 1
.sp 3
.TL
.nr VS 16
Prisms and Rainbows:
a Dispersion Model for Computer Graphics
.nr VS 14
.AU
F. Kenton Musgrave
.AI
.\" F. Kenton Musgrave
Department of Mathematics
Yale University
Box 2155 Yale Station
New Haven, Connecticut 06520
.sp 1
.AB
.ce
\fBAbstract\fR
.PP
\fIDispersion\fR is the spreading of refracted light
into its component colors or spectrum.
A model of refraction including dispersion
is developed using the techniques of distributed ray tracing.
Two models of the rainbow, one empirical or impressionistic, the
other purely physical, are developed using the results of the
dispersion model.
The problem of representing the spectrum of monochromatic colors
using the rgb primaries of the graphics monitor is addressed.
.PP
KEYWORDS: Dispersion, refraction, rainbow, stochastic sampling,
distributed ray tracing, spectrum, color gamut.
.NH
INTRODUCTION
.PP
Treatment of refraction in computer graphics has generally lacked
\fIdispersion\fR, or the spreading of refracted light into its component
colors or \fIspectrum\fR.
While convincing simulations of transparent objects can be had without
taking dispersion into account,
the inclusion of dispersion makes available additional realism and beauty.
We will present a dispersion model, within the \fIray tracing\fR paradigm,
and develop a physical model of the
rainbow based on that dispersion model.
.PP
Modelling of dispersion entails the solution of at least two distinct problems:
the integration and reconstruction
of the \fIpower spectrum\fR of light by frequency,
and the display of the spectrum of \fImonochromatic\fR colors on a standard
graphics display device.
The first problem may be treated as another aspect of the \fIdistributed ray
tracing\fR model of Cook\*([.4\*(.]
et. al. or as an enhancement to the \fIrendering equation\fR of Kajiya.\*([.11\*(.]
The problem of reproducing monochromatic colors is in the realm of color science\*([.27\*(.]
and an approximate solution can be had through the use of \fImetamers\fR,
though this problem remains an open area of research.
.PP
Perhaps the most spectacular example of dispersion at work in nature is the
rainbow.
The arc of the rainbow is a result of the geometry of the reflection and
refraction of light in raindrops;
the wonderful colors of the rainbow are the result of dispersion
of sunlight in refraction through water.
With a working dispersion model and some geometric optics, one can
produce an efficient rainbow model for use in ray-raced and Z-buffered
rendering schemes.
We will present two rainbow models, one impressionistic or empirical\*([.8\*(.]
and another purely physical and therefore, quite true to nature.
.NH
PROBLEM STATEMENT
.PP
The Cook-Torrance\*([.3\*(.]
shading model
takes into account the frequency of light waves in reflection
from surfaces as a function of the index of refraction.
What has been missing from the generally available literature is
a model of refraction which takes into account
the frequency of light.
Such a dispersion model has been called for in previous research.\*([.11,\|13\*(.]
Some dispersion models have apparently been developed, but not published.\*([.9,\|25\*(.]
Thomas\*([.23\*(.]
published a brief description of a dispersion model,
but did not develop atmospheric rainbows;
unfortunately, Thomas' article remains obscure.
The work presented here
was developed independently of Thomas, and differs in most important respects.
.PP
The model of dispersion developed here is an extension of distributed
ray tracing\*([.24\*(.]
and thereby uses the Monte Carlo integration techniques of Cook.\*([.6\*(.]
Integration of a continuous function by a finite number of \fIpoint samples\fR
can lead to two types of \fIaliasing\fR, that of the frequency content of
the signal being sampled
and that introduced in the reconstruction of the signal from the samples.
It is important to note that we are not concerned with the former type
of aliasing, which is
the result of sampling the signal at a rate below the Nyquist limit.
Color \fImetamerism\fR generally obviates the need for very accurate
reproduction of the exact curve of the power spectrum;
nuances of the power distribution are important only in the interaction
of light with attenuating media and reflecting surfaces and can
safely be ignored in our model.
What \fBis\fR important is our reconstruction of the spectrum
from the point samples taken.
As our approximation of the
integral of the power spectrum will be a set of discrete samples,
our reconstruction will be prone to appearing as a set of discrete,
overlapping colors.
This situation is analogous to that of \fItemporal aliasing\fR,
where a moving ball may be sampled (imaged) at several points in time
in an attempt to get motion blur and, upon reconstruction,
appear as several overlapping, translucent circles.
.PP
In the case of dispersion, if we were to view a white disk on a
black background through a prism, we might see several
overlapping disks of different colors.
We call this effect \fIspectral aliasing\fR, and use the \fIjittering\fR
technique of stochastic sampling to defeat it.
Jittering is random placement of the actual sample points within fixed
sample intervals, which intervals may themselves be regularly spaced.
Jittering adds noise to the image and turns the distinct overlapping
images into a speckled blur, which looks a bit like spray paint.
.PP
The advantage of this noisy reconstruction of the image is that the
human visual system tends to blur the noise together into a smooth
continuum, whereas it
actually enhances the sharp edges in the non-noisy images for a most
displeasing effect.
Such sharp discontinuities in intensity or color, or the rate of change
thereof, manifest the phenomenon known as \fIMach banding\fR.
Mach bands are an artifact of the edge-enhancement caused by \fIlateral
inhibition\fR in the retina.\*([.7\*(.]
When constructing and sampling our representation of the spectrum
we must be aware of the potential for trouble with color Mach banding.
The practical significance of this problem will be addressed in section 4.1.
.PP
Whatever colors we choose for representation, we will fail to
accurately reproduce the spectrum.
The graphics monitor has three \fIprimary\fR colors with which to work,
none of which is fully \fIsaturated\fR.
Even if we have three fully saturated or monochromatic primaries
(as are available with laser raster projection systems),
all other monochromatic colors can only be approximated,
with varying degrees of \fIdesaturation\fR.
Our task, then, is to represent the entire visible spectrum of monochromatic
colors as best we can,
using three desaturated primaries and avoiding Mach bands.
Furthermore, the sum of the samples chosen to represent the spectrum must,
at full intensity, be the value of full-intensity white.
If not, image samples
involving dispersion will be tinted and/or shifted in intensity.
.PP
Given a working model of dispersion and an acceptable representation of the
spectrum, one looks for applications.
One striking application is a physical model of the rainbow.
Rainbows are the result of the interaction of sunlight with very large
numbers of raindrops in the atmosphere.
The sheer number of particles (raindrops) involved,
multiplied by the number of samples required to integrate the spectrum,
makes a direct simulation of nature quite impractical.
By modelling of the interaction of light with a single ideal raindrop,
we can acquire a table of data which represents the situation in nature.
This table may be used subsequently in the rendering process to replicate
the effects of a rainbow in nature, with very good computational efficiency.
We will describe such an approach in Section 4.3.
.NH
PREVIOUS WORK
.NH 2
Physics of Refraction
.PP
Refraction is an effect of the differing speed of light in dissimilar
materials.
The speed of light in a material determines its \fIoptical density\fR
which, surprisingly, is not exactly proportional to its mass
density.
As light slows down upon entering a medium of greater optical density,
the wave trains are compressed.
Thus, while frequency is preserved, wavelength is not.
(It thereby behooves one to be careful \fBnot\fR to use "frequency" and
"wavelength" interchangeably when discussing refraction and dispersion.)
.PP
The \fIangle of refraction\fR, or the angle of the change in path for light,
was related mathematically to the net change in \fIindex of refraction\fR
by Willebrord Snell
.\" (and, independently, by Rene Descartes)
in 1621 by Snell's Law:\*([.1,\|19\*(.]
.EQ I (1)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "\(*y
.ds 12 "\f11\fP
.as 11 \v'18u'\s-3\*(12\s+3\v'-18u'
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\f1sin\fP
.as 11 "\*(12
.ds 12 "\(*h
.ds 13 "i
.as 12 \v'18u'\s-3\*(13\s+3\|\v'-18u'
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(*y
.ds 13 "\f12\fP
.as 12 \v'18u'\s-3\*(13\s+3\v'-18u'
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\f1sin\fP
.as 11 "\*(12
.ds 12 "\(*h
.ds 13 "t
.as 12 \v'18u'\s-3\*(13\s+3\|\v'-18u'
.as 11 "\*(12
.ds 11 \x'0'\f2\s12\*(11\s\n(99\f\n(98\x'3u'
.nr 11 \w'\*(11'
.nr MK 0
.if 90>\n(.v .ne 90u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "where
.ps 12
.ft 2
.ds 13 "\(*y
.ds 14 "\f11\fP
.as 13 \v'18u'\s-3\*(14\s+3\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " and
.ps 12
.ft 2
.ds 13 "\(*y
.ds 14 "\f12\fP
.as 13 \v'18u'\s-3\*(14\s+3\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " are the indices of refraction
.ps \n(99
.ft \n(98
\*(12
of the two transmissive media,
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.ps 12
.ft 2
.ds 13 "\(*h
.ds 14 "i
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the angle of incidence
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "and
.ps 12
.ft 2
.ds 13 "\(*h
.ds 14 "t
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the angle of transmission.
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "As the refractive index
.ps 12
.ft 2
.ds 13 "\(*y
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is a function of the frequency of the light
.ps \n(99
.ft \n(98
\*(12
ray, the angle of refraction is also a function of frequency.
Thus arises dispersion.
.NH 2
Physics of Dispersion
.PP
.\" Dispersion was first
.\" described by Sir Isaac Newton in his 1704 work \fIOpticks\fR.
.\" Newton discovered that white light is really a sum of the spectrum of
.\" monochromatic colors, and that index of refraction is a function of color.
The proportion of
change of index of refraction with frequency in a material is termed
\fIdispersive power\fR.
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "The dispersive power
.ps 12
.ft 2
.ds 13 "w
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " of a material is defined as the ratio
.ps \n(99
.ft \n(98
\*(12
of the dispersion between the F and C Fraunhofer lines*
.FS
* The Fraunhofer lines are \fIemission lines\fR of hydrogen.
They represent monochromatic light at various visible wavelengths:
the C line is at 656.3 nm (red), D is at 589.3 nm (yellow), and F is at 486.1 nm
(violet).
.FE
to the mean deviation, i.e., the deviation for the D Fraunhofer line.\*([.20,\|21,\|26\*(.]
Thus
.EQ I (2)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "w
.ds 12 "\
.as 11 "\|\*(12
.ds 12 "\(eq
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "\f1(\fP
.ds 13 "\(*y
.ds 14 "F
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.as 12 "\*(13
.ds 13 "\(mi
.as 12 "\*(13
.ds 13 "\(*y
.ds 14 "C
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.as 12 "\*(13
.ds 13 "\f1)\fP
.as 12 "\*(13
.ds 13 "\f1(\fP
.ds 14 "\(*y
.ds 15 "D
.as 14 \v'18u'\s-3\*(15\s+3\|\v'-18u'
.as 13 "\*(14
.ds 14 "\(mi
.as 13 "\*(14
.ds 14 "\f11\fP
.as 13 "\*(14
.ds 14 "\f1)\fP
.as 13 "\*(14
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'51u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-111u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'39u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 11 \x'0'\x'0-45u'\f2\s12\*(11\s\n(99\f\n(98\x'54u'
.nr 11 \w'\*(11'
.nr MK 0
.if 201>\n(.v .ne 201u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "where
.ps 12
.ft 2
.ds 13 "\(*y
.ds 14 "F
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ",
.ps 12
.ft 2
.ds 13 "\(*y
.ds 14 "C
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ", and
.ps 12
.ft 2
.ds 13 "\(*y
.ds 14 "D
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 "
.ps \n(99
.ft \n(98
\*(12
are the refractive indices of the
material at the frequencies of the F, C, and D Fraunhofer lines, respectively.
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 ".\" In the optical industry, the reciprocal of the dispersive power
.ps 12
.ft 2
.ds 13 "\(*n
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 "
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 ".\" (the "
.ps 12
.ft 2
.ds 13 "\(*n
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 "-value" or "Abbe number")
.ps \n(99
.ft \n(98
\*(12
.\" is more commonly used:
.\" .[
.\" Besancon
.\" .]
.\" .EQ I (3)
.\" nu ~=~ 1 over w ~=~ {( eta sub D - 1 )} over {( eta sub F - eta sub C )}
.\" .EN
.\" .LP
.\" This Abbe number can range from about 16, for methylene iodide, to
.\" over 95, for calcium fluoride.
.\" (The respective dispersive powers are approximately 0.06 to 0.01.)
.\" For optical glasses the Abbe number
.\" can range from 19.7, for the densest silicate flint
.\" glass, to 70.0, for light phosphate crown glass.
.\" The Abbe number for water is 55.7.
.PP
Just as optical density is independent of mass density, dispersive power
is independent of optical density.
The reason is that dispersion is modulated by \fIabsorption bands\fR in
materials, not by optical density.
.KF
.sp 2i
.nr PS 10
.QP
.ls 1
.ce
Figure 3.1 The dispersion curve at an absorption band.
.nr PS 12
.PP
.rs
.KE
.\" .LP
Note also that the plot of refractive index vs. frequency is not perfectly
straight, but curved.
This is an important factor in the development of a model of dispersion.
.PP
There have been many attempts to formulate a quantitative relation
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "of refractive index
.ps 12
.ft 2
.ds 13 "\(*y
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " to frequency or
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "wavelength
.ps 12
.ft 2
.ds 13 "\(*l
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ", none entirely successful.
.ps \n(99
.ft \n(98
\*(12
The best known and most general is that of Sellmeier:\*([.1\*(.]
.EQ I (3)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "\(*y
.ds 12 "\f12\fP
.as 11 \v'-27u'\s-3\*(12\s+3\v'27u'
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.ds 12 \k(97\*(12
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "\f11\fP
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\(pl
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 \s12\v'.3m'\s+5\(*S\s-5\v'-.3m'\s12
.as 11 "\*(12
.ds 12 "b
.ds 13 "\(*l
.ds 14 "\f12\fP
.as 13 \v'-27u'\s-3\*(14\s+3\v'27u'
.as 12 "\|\*(13
.ds 13 "c
.ds 14 "\f12\fP
.as 13 \v'-27u'\s-3\|\*(14\s+3\v'27u'
.ds 14 "\|
.as 13 "\*(14
.ds 14 "\(mi
.as 13 "\*(14
.ds 14 "\|
.as 13 "\*(14
.ds 14 "\(*l
.ds 15 "\f12\fP
.as 14 \v'-27u'\s-3\*(15\s+3\v'27u'
.as 13 "\*(14
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'63u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-105u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'21u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 11 \x'0'\x'0-39u'\f2\s12\*(11\s\n(99\f\n(98\x'48u'
.nr 11 \w'\*(11'
.nr MK 1
.if 189>\n(.v .ne 189u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "where
.ps 12
.ft 2
.ds 13 "b
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is a constant characteristic of the material,
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.ps 12
.ft 2
.ds 13 "c
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is an idealized absorption wavelength of the material
.ps \n(99
.ft \n(98
\*(12
(corresponding to a spectral \fIabsorption band\fR)
where the index of refraction is infinite,
and the summation is over all absorption bands in the material.
Simpler equations which are suitable for limited extents within
the spectrum are:\*([.1\*(.]
.EQ I (Cauchy)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "\(*y
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.nr 11 \w'\s12\*(11'
.ds 11 \h'|\n(97u-\n(11u'\*(11
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "a
.ds 13 "\(*l
.ds 14 "\f10\fP
.as 13 \v'-27u'\s-3\*(14\s+3\v'27u'
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'63u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-105u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'21u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\(pl
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "b
.ds 13 "\(*l
.ds 14 "\f12\fP
.as 13 \v'-27u'\s-3\*(14\s+3\v'27u'
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'63u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-105u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'21u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\(pl
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "c
.ds 13 "\(*l
.ds 14 "\f14\fP
.as 13 \v'-27u'\s-3\*(14\s+3\v'27u'
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'63u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-105u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'21u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\(pl
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\v'-.3m'\ .\ .\ .\ \v'.3m'
.as 11 "\*(12
.ds 11 \x'0'\x'0-27u'\f2\s12\*(11\s\n(99\f\n(98\x'48u'
.nr 11 \w'\*(11'
.nr MK 1
.if 177>\n(.v .ne 177u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.EQ I (Hartmann)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "\(*y
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.nr 11 \w'\s12\*(11'
.ds 11 \h'|\n(97u-\n(11u'\*(11
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "\f11\fP
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\(pl
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "b
.ds 13 "\f1(\fP
.ds 14 "c
.as 13 "\*(14
.ds 14 "\|
.as 13 "\|\*(14
.ds 14 "\(mi
.as 13 "\*(14
.ds 14 "\|
.as 13 "\*(14
.ds 14 "\(*l
.as 13 "\*(14
.ds 14 "\f1)\fP
.as 13 "\*(14
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'51u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-93u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'21u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 11 \x'0'\x'0-27u'\f2\s12\*(11\s\n(99\f\n(98\x'36u'
.nr 11 \w'\*(11'
.nr MK 1
.if 165>\n(.v .ne 165u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.EQ I (Conrady)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "\(*y
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.nr 11 \w'\s12\*(11'
.ds 11 \h'|\n(97u-\n(11u'\*(11
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "a
.as 11 "\*(12
.ds 12 "\|
.as 11 "\|\*(12
.ds 12 "\(pl
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "b
.ds 13 "\(*l
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'51u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-93u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'21u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\(pl
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "c
.ds 13 "\(*l
.ds 14 "\f17\fP
.ds 15 "\f12\fP
.nr 14 \w'\s9\*(14'
.nr 15 \w'\s9\*(15'
.nr 16 \n(14
.if \n(15>\n(16 .nr 16 \n(15
.nr 16 \n(16+\s9.5m\s0
.ds 14 \v'39u'\h'\n(16u-\n(15u/2u'\*(15\
\h'-\n(15u-\n(14u/2u'\v'-69u'\*(14\
\h'-\n(16u-\n(14u/2u+.1m'\v'15u'\l'\n(16u-.2m'\h'.1m'\v'15u'
.as 13 \v'-66u'\s-3\*(14\s+3\v'66u'
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'132u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-174u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'21u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 11 \x'0'\x'0-27u'\f2\s12\*(11\s\n(99\f\n(98\x'117u'
.nr 11 \w'\*(11'
.nr MK 1
.if 246>\n(.v .ne 246u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.EQ I (Hertzberger)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "\(*y
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.nr 11 \w'\s12\*(11'
.ds 11 \h'|\n(97u-\n(11u'\*(11
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "a
.as 11 "\*(12
.ds 12 "\|
.as 11 "\|\*(12
.ds 12 "\(pl
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "b
.as 11 "\*(12
.ds 12 "\(*l
.ds 13 "\f12\fP
.as 12 \v'-27u'\s-3\*(13\s+3\v'27u'
.as 11 "\|\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\(pl
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "c
.as 11 "\*(12
.ds 12 "L
.as 11 "\*(12
.ds 12 "\|
.as 11 "\|\*(12
.ds 12 "\(pl
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "d
.as 11 "\*(12
.ds 12 "L
.ds 13 "\f12\fP
.as 12 \v'-27u'\s-3\|\*(13\s+3\v'27u'
.as 11 "\*(12
.ds 11 \x'0'\f2\s12\*(11\s\n(99\f\n(98
.nr 11 \w'\*(11'
.nr MK 1
.if 84>\n(.v .ne 84u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "where
.ps 12
.ft 2
.ds 13 "L
.ds 14 "\
.as 13 "\|\*(14
.ds 14 "\(eq
.as 13 "\*(14
.ds 14 "\
.as 13 "\*(14
.ds 14 "\f1(\fP
.ds 15 "\(*l
.ds 16 "\f12\fP
.as 15 \v'-27u'\s-3\*(16\s+3\v'27u'
.as 14 "\*(15
.ds 15 "\|
.as 14 "\*(15
.ds 15 "\(mi
.as 14 "\*(15
.ds 15 "\|
.as 14 "\*(15
.ds 15 "\f10\fP\f1.\fP\f10\fP\f12\fP\f18\fP
.as 14 "\*(15
.ds 15 "\f1)\fP
.as 14 "\*(15
.ds 15 "\(mi\f11\fP
.as 14 \v'-33u'\s-3\*(15\s+3\v'33u'
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ",
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "and
.ps 12
.ft 2
.ds 13 "a
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ",
.ps 12
.ft 2
.ds 13 "b
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ",
.ps 12
.ft 2
.ds 13 "c
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ", and
.ps 12
.ft 2
.ds 13 "d
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " are constants.
.ps \n(99
.ft \n(98
\*(12
These equations are all nonlinear, and values of the constants for
.\" This equation is nonlinear, and values of the constants for
various materials are not easily found in the literature.
This will be a consideration in our development of a dispersion model.
.NH 2
Rainbows
.PP
Rene Descartes worked out the first scientifically accurate model of
the rainbow in 1637.\*([.10,\|14\*(.]
To do this, he assumed the raindrops to be spherical
and traced rays through a circular, two dimensional
representation - proof that ray tracing is hardly a new technique!
Descartes' simulation is illustrated in Figure 3.2.
.KF
.sp 5i
.nr PS 10
.QP
.ls 1
.ce
Figure 3.2 Descartes' raindrop.
.nr PS 12
.PP
.rs
.KE
.LP
With his simulation, Descartes was able to accurately explain the angular
size and position of the primary rainbow arc and some of the supernumerary arcs.
(The supernumerary arcs which sometimes appear
immediately inside of the primary rainbow arc
are due to \fIdiffraction\fR effects arising from the wave nature of light,
and thus cannot be modelled using the geometric optics
of a particle transport ray tracing paradigm.
For more on this topic, see Nussenzvieg.\*([.17\*(.]
)
Interestingly, an explanation for the color in the rainbow had to await
Newton's discovery of dispersion some decades later.
Aside from the supernumerary arcs inside the primary rainbow arc,
Descartes' raindrop remains an accurate and sufficient model of the rainbow.
.PP
To recreate Descartes' simulation, we trace rays into the raindrop from the
optical axis (ray 1 in Figure 3.2) to the edge of the circle.
This corresponds to a range of zero to one for the \fIimpact parameter\fR;
the value of this impact parameter uniquely determines the path of the ray
through the raindrop.
Upon impinging the the raindrop, the ray is refracted, reflected once for
the primary arc or twice for the secondary arc, and refracted again
upon exiting the drop.
Arcs formed by higher-order internal reflections are
deemed unimportant as they are too dim and/or appear close to the sun in the
sky, and are therefore not visible.
.PP
Note that all rays with an impact parameter greater than or less than that
of ray 7 in Figure 3.2, the \fIDescartes ray\fR, emerge at an angle closer
to the optical axis than that ray.
Thus the Descartes ray marks a point of inflection in the change of
emergence angle with impact parameter,
and there is a concentration of light energy being returned at this angle,
which is approximately 42 degrees.
This gives us a bright feature 42 degrees from the optical axis;
it is dispersion which spreads the bright feature into the spectrum of colors.
Note also that the fact that all rays which are reflected exactly once inside
the raindrop emerge at 42 degrees or less, makes the sky appear lighter
inside of the primary arc of the rainbow.
Rays reflected exactly twice inside the raindrop emerge with a peak power
at approximately 52 degrees, with the excess light emerging at greater angles.
Thus the secondary arc appears at about 52 degrees; between the two
arcs is a zone of darkness known as Alexander's band.
.nr PS 10
.nr VS 10
.LP
* The extinction coefficient is a physical quantity specific to each material\*([.22\*(.]
which varies with frequency.
The specific values of this coefficient are often unknown for a given material,
and it is generally set to 0, for the purposes of computer graphics lighting
models.
.nr PS 12
.nr VS 14
.PP
To perform an accurate simulation of energy transfer in
Descartes' raindrop, the Fresnel equation
should be used to modulate the quantities of reflected and refracted energy.
With an \fIextinction coefficient\fR* of 0,
.\" With an \fIextinction coefficient\fR\(dg of 0,
.\" .FS
.\" .nr LL 4.25i
.\" \(dg The \fIextinction coefficient\fR is a physical quantity specific to
.\" * The extinction coefficient is a physical quantity specific to each material
.\" .[
.\" Sparrow
.\" Radiation
.\" .]
.\" which varies with frequency.
.\" The specific values of this coefficient are often unknown for a given material,
.\" and it is generally set to 0, for the purposes of computer graphics lighting
.\" models.
.\" .FE
the Fresnel equation for reflection can be written:\*([.2\*(.]
.EQ I (4)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "r
.ds 12 "pa
.as 11 \v'18u'\s-3\*(12\s+3\|\v'-18u'
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.ds 12 \k(97\*(12
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(*y
.ds 13 "\f12\fP
.as 12 \v'18u'\s-3\*(13\s+3\v'-18u'
.ds 13 "\f1cos\fP
.as 12 "\*(13
.ds 13 "\(*h
.ds 14 "i
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.as 12 "\*(13
.ds 13 "\|
.as 12 "\*(13
.ds 13 "\(mi
.as 12 "\*(13
.ds 13 "\|
.as 12 "\*(13
.ds 13 "\(*y
.ds 14 "\f11\fP
.as 13 \v'18u'\s-3\*(14\s+3\v'-18u'
.as 12 "\*(13
.ds 13 "\f1cos\fP
.as 12 "\*(13
.ds 13 "\(*h
.ds 14 "t
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.as 12 "\*(13
.ds 13 "\(*y
.ds 14 "\f12\fP
.as 13 \v'18u'\s-3\*(14\s+3\v'-18u'
.ds 14 "\f1cos\fP
.as 13 "\*(14
.ds 14 "\(*h
.ds 15 "i
.as 14 \v'18u'\s-3\*(15\s+3\|\v'-18u'
.as 13 "\*(14
.ds 14 "\|
.as 13 "\*(14
.ds 14 "\(pl
.as 13 "\*(14
.ds 14 "\|
.as 13 "\*(14
.ds 14 "\(*y
.ds 15 "\f11\fP
.as 14 \v'18u'\s-3\*(15\s+3\v'-18u'
.as 13 "\*(14
.ds 14 "\f1cos\fP
.as 13 "\*(14
.ds 14 "\(*h
.ds 15 "t
.as 14 \v'18u'\s-3\*(15\s+3\|\v'-18u'
.as 13 "\*(14
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'51u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-111u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'39u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 11 \x'0'\x'0-45u'\f2\s12\*(11\s\n(99\f\n(98\x'54u'
.nr 11 \w'\*(11'
.nr MK 1
.if 201>\n(.v .ne 201u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.EQ I (5)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "r
.ds 12 "pe
.as 11 \v'18u'\s-3\*(12\s+3\|\v'-18u'
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.nr 11 \w'\s12\*(11'
.ds 11 \h'|\n(97u-\n(11u'\*(11
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(*y
.ds 13 "\f11\fP
.as 12 \v'18u'\s-3\*(13\s+3\v'-18u'
.ds 13 "\f1cos\fP
.as 12 "\*(13
.ds 13 "\(*h
.ds 14 "i
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.as 12 "\*(13
.ds 13 "\|
.as 12 "\*(13
.ds 13 "\(mi
.as 12 "\*(13
.ds 13 "\|
.as 12 "\*(13
.ds 13 "\(*y
.ds 14 "\f12\fP
.as 13 \v'18u'\s-3\*(14\s+3\v'-18u'
.as 12 "\*(13
.ds 13 "\f1cos\fP
.as 12 "\*(13
.ds 13 "\(*h
.ds 14 "t
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.as 12 "\*(13
.ds 13 "\(*y
.ds 14 "\f11\fP
.as 13 \v'18u'\s-3\*(14\s+3\v'-18u'
.ds 14 "\f1cos\fP
.as 13 "\*(14
.ds 14 "\(*h
.ds 15 "i
.as 14 \v'18u'\s-3\*(15\s+3\|\v'-18u'
.as 13 "\*(14
.ds 14 "\|
.as 13 "\*(14
.ds 14 "\(pl
.as 13 "\*(14
.ds 14 "\|
.as 13 "\*(14
.ds 14 "\(*y
.ds 15 "\f12\fP
.as 14 \v'18u'\s-3\*(15\s+3\v'-18u'
.as 13 "\*(14
.ds 14 "\f1cos\fP
.as 13 "\*(14
.ds 14 "\(*h
.ds 15 "t
.as 14 \v'18u'\s-3\*(15\s+3\|\v'-18u'
.as 13 "\*(14
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'51u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-111u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'39u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 11 \x'0'\x'0-45u'\f2\s12\*(11\s\n(99\f\n(98\x'54u'
.nr 11 \w'\*(11'
.nr MK 1
.if 201>\n(.v .ne 201u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.EQ I (6)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "R
.ds 12 "\
.as 11 "\|\*(12
.ds 12 "\(eq
.nr 11 \w'\s12\*(11'
.ds 11 \h'|\n(97u-\n(11u'\*(11
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "r
.ds 13 "pa
.ds 14 "\f12\fP
.as 13 \|
.nr 13 \w'\s9\*(13'
.ds 14 \|\|\*(14
.nr 14 \w'\s9\*(14'
.nr 15 \n(14
.if \n(13>\n(15 .nr 15 \n(13
.as 12 \v'18u'\s9\*(13\h'-\n(13u'\v'-45u'\
\s9\*(14\h'-\n(14u+\n(15u'\s12\v'27u'
.ds 13 "\|
.as 12 "\*(13
.ds 13 "\(pl
.as 12 "\*(13
.ds 13 "\|
.as 12 "\*(13
.ds 13 "r
.ds 14 "pe
.ds 15 "\f12\fP
.as 14 \|
.nr 14 \w'\s9\*(14'
.ds 15 \|\|\*(15
.nr 15 \w'\s9\*(15'
.nr 16 \n(15
.if \n(14>\n(16 .nr 16 \n(14
.as 13 \v'18u'\s9\*(14\h'-\n(14u'\v'-45u'\
\s9\*(15\h'-\n(15u+\n(16u'\s12\v'27u'
.as 12 "\*(13
.ds 13 "\f12\fP
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'51u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-111u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'39u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 11 \x'0'\x'0-57u'\f2\s12\*(11\s\n(99\f\n(98\x'36u'
.nr 11 \w'\*(11'
.nr MK 1
.if 195>\n(.v .ne 195u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.sp
where
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.ps 12
.ft 2
.ds 13 "r
.ds 14 "pa
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the reflection coefficient for the component of light which
.ps \n(99
.ft \n(98
\*(12
is polarized parallel to the surface,
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.ps 12
.ft 2
.ds 13 "r
.ds 14 "pe
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the reflection coefficient for the component
.ps \n(99
.ft \n(98
\*(12
polarized perpendicular to the surface,
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.ps 12
.ft 2
.ds 13 "\(*y
.ds 14 "\f11\fP
.as 13 \v'18u'\s-3\*(14\s+3\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " and
.ps 12
.ft 2
.ds 13 "\(*y
.ds 14 "\f12\fP
.as 13 \v'18u'\s-3\*(14\s+3\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " are the refractive indices of the two materials,
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.ps 12
.ft 2
.ds 13 "\(*h
.ds 14 "i
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the angle of incidence,
.ps 12
.ft 2
.ds 13 "\(*h
.ds 14 "t
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the
.ps \n(99
.ft \n(98
\*(12
angle of refraction,
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "and
.ps 12
.ft 2
.ds 13 "R
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the total reflectivity.
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "Light not reflected is refracted in quantity
.ps 12
.ft 2
.ds 13 "\f11\fP
.ds 14 "\|
.as 13 "\*(14
.ds 14 "\(mi
.as 13 "\*(14
.ds 14 "\|
.as 13 "\*(14
.ds 14 "R
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ".
.ps \n(99
.ft \n(98
\*(12
.KF
.sp 2.5i
.nr PS 10
.QP
.ls 1
.ce
Figure 3.3 The cone of a rainbow.
.nr PS 12
.PP
.rs
.KE
.PP
The rainbow phenomenon exists as a cone in space which is unique for each
point of view (and indeed for each eye of the individual observer);
Figure 3.3 is intended to illuminate this.
Inspect it carefully for the following argument.
Since the geometry of reflection and refraction as discussed above
gives us a spectrum appearing at an angle the same as that of the Descartes ray
from the straight back direction to the light source,
we would expect to see that spectrum in all (sunlit) raindrops viewed from
that angle.
The sun's rays can be assumed to be parallel,
thus this effect appears to the observer as a circle
of angular radius 42 degrees, since the observer is, by definition, at the
apex of the cone.
Naturally occurring rainbows actually constitute a cone of half-angle 42
degrees around the \fIantisolar point\fR
and have an angular width of approximately 2 degrees.
The secondary arc appears at a half-angle of 52 degrees.
.NH 2
Computer Graphics
.PP
As mentioned above, the Cook-Torrance shading model relates reflection
to index of refraction and frequency through the Fresnel equation.\*([.22\*(.]
A model of refraction relating index of refraction to frequency
has been developed by Thomas\*([.23\*(.]
and more recently by the author;\*([.15,\|16\*(.]
that work is extended here to include a physical model of the rainbow.
.PP
The problem of integration and reconstruction using point samples has been
addressed by Cook\*([.6\*(.]
in his discussion of the distributed ray tracing model.\*([.4\*(.]
The dispersion model developed by the author is a straightforward
application of Cook's techniques, as an extension to the repertoire
of effects available through distributed ray tracing.
.PP
A model of atmospheric rainbows has been alluded to in the literature,\*([.5\*(.]
but not presented in detail.
A physical model of the rainbow requires a fair amount of development
work.
Fortunately, the development work being done,
the results are easy to include as an added feature in a rendering program.
.NH
SOLUTION
.NH 2
Sampling in the Frequency Domain of Light
.PP
To model dispersion, we must integrate the power spectrum of light
at each sample point in the image where there occurs dispersive refraction,
such as on the surface of a glass prism.
The integral of the power spectrum can be expressed
.EQ I (7)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "I
.ds 12 "T
.as 11 \v'18u'\s-3\*(12\s+3\|\v'-18u'
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 \s12\v'.1m'\s+4\(is\s-4\v'-.1m'\s12
.ds 13 "\f13\fP\f18\fP\f10\fP
.ds 13 \s7\*(13\s9
.ds 14 "\f18\fP\f10\fP\f10\fP
.ds 14 \s7\*(14\s9
.nr 12 \w'\s12\*(12'
.nr 15 \n(12
.nr 13 \w'\s9\*(13'
.if \n(13>\n(15 .nr 15 \n(13
.nr 14 \w'\s9\*(14'
.if \n(14>\n(15 .nr 15 \n(14
.ds 15 \v'63u'\h'\n(15u-\n(13u/2u'\s9\*(13\s12\h'-\n(15u-\n(13u/2u'\v'-63u'\
\h'\n(15u-\n(12u/2u'\*(12\h'\n(15u-\n(12u/2u'\
\v'-93u'\h'-\n(15u-\n(14u/2u'\s9\*(14\s12\h'\n(15u-\n(14u/2u'\v'93u'\
.as 11 "\*(15
.ds 12 "I
.as 11 "\*(12
.ds 12 "\f1(\fP
.as 11 "\|\*(12
.ds 12 "\(*l
.as 11 "\*(12
.ds 12 "\f1)\fP
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "d
.as 11 "\*(12
.ds 12 "\(*l
.as 11 "\|\*(12
.ds 11 \x'0'\x'0-48u'\f2\s12\*(11\s\n(99\f\n(98\x'48u'
.nr 11 \w'\*(11'
.nr MK 0
.if 198>\n(.v .ne 198u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "where
.ps 12
.ft 2
.ds 13 "I
.ds 14 "T
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the total illuminance at the given point in space
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "and
.ps 12
.ft 2
.ds 13 "I
.ds 14 "\f1(\fP
.as 13 "\|\*(14
.ds 14 "\(*l
.as 13 "\*(14
.ds 14 "\f1)\fP
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the illuminance at wavelength
.ps 12
.ft 2
.ds 13 "\(*l
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 "
.ps \n(99
.ft \n(98
\*(12
at that point.
As we need only integrate the power spectrum of \fItransmitted\fR light
at dispersive surfaces, since only transmitted or refracted light is dispersed,
the integral we are interested in can be stated
.EQ I (8)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "I
.ds 12 "t
.as 11 \v'18u'\s-3\*(12\s+3\|\v'-18u'
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 \s12\v'.1m'\s+4\(is\s-4\v'-.1m'\s12
.ds 13 "\f13\fP\f18\fP\f10\fP
.ds 13 \s7\*(13\s9
.ds 14 "\f18\fP\f10\fP\f10\fP
.ds 14 \s7\*(14\s9
.nr 12 \w'\s12\*(12'
.nr 15 \n(12
.nr 13 \w'\s9\*(13'
.if \n(13>\n(15 .nr 15 \n(13
.nr 14 \w'\s9\*(14'
.if \n(14>\n(15 .nr 15 \n(14
.ds 15 \v'63u'\h'\n(15u-\n(13u/2u'\s9\*(13\s12\h'-\n(15u-\n(13u/2u'\v'-63u'\
\h'\n(15u-\n(12u/2u'\*(12\h'\n(15u-\n(12u/2u'\
\v'-93u'\h'-\n(15u-\n(14u/2u'\s9\*(14\s12\h'\n(15u-\n(14u/2u'\v'93u'\
.as 11 "\*(15
.ds 12 "T
.as 11 "\*(12
.ds 12 "\f1(\fP
.as 11 "\|\*(12
.ds 12 "\(*l
.as 11 "\*(12
.ds 12 "\f1)\fP
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "d
.as 11 "\*(12
.ds 12 "\(*l
.as 11 "\|\*(12
.ds 11 \x'0'\x'0-48u'\f2\s12\*(11\s\n(99\f\n(98\x'48u'
.nr 11 \w'\*(11'
.nr MK 0
.if 198>\n(.v .ne 198u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "where
.ps 12
.ft 2
.ds 13 "I
.ds 14 "t
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is now the illuminance by transmitted
.ps \n(99
.ft \n(98
\*(12
light at a point in space on the boundary of a change in refractive index,
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "and
.ps 12
.ft 2
.ds 13 "T
.ds 14 "\f1(\fP
.as 13 "\|\*(14
.ds 14 "\(*l
.as 13 "\*(14
.ds 14 "\f1)\fP
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the illuminance by the transmitted light at
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "wavelength
.ps 12
.ft 2
.ds 13 "\(*l
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ".
.ps \n(99
.ft \n(98
\*(12
.PP
As previously stated, we will approximate this integral using a set of point
samples.
We perform \fIstochastic antialiasing\fR of our integral by \fIjittering\fR\*([.6\*(.]
the samples.
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "If a sample
.ps 12
.ft 2
.ds 13 "\^f\|
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " at frequency
.ps 12
.ft 2
.ds 13 "\(*l
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " represents the power in the spectrum over
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "an interval of width
.ps 12
.ft 2
.ds 13 "\(*D
.ds 14 "\^f\|
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ",
.ps \n(99
.ft \n(98
\*(12
the jittering consists of adding a random offset
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.ps 12
.ft 2
.ds 13 "\(*D
.ds 14 "\^f\|
.as 13 "\*(14
.ds 14 "\|
.as 13 "\|\*(14
.ds 14 "\f1(\fPX
.as 13 "\*(14
.ds 14 "\|
.as 13 "\|\*(14
.ds 14 "\(mi
.as 13 "\*(14
.ds 14 "\|
.as 13 "\*(14
.ds 14 "\f11\fP
.as 13 "\*(14
.ds 14 "\(sl
.as 13 "\*(14
.ds 14 "\f12\fP\f1)\fP
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 "
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "where
.ps 12
.ft 2
.ds 13 "X
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is a random variable of uniform distribution in the range
.ps 12
.ft 2
.ds 13 "\f1[\fP\f10\fP\f1.\fP\f1.\fP\f11\fP\f1]\fP
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ".
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "The net effect is to randomly place the sample
.ps 12
.ft 2
.ds 13 "\^f\|
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " somewhere within the
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "interval
.ps 12
.ft 2
.ds 13 "\(*l
.ds 14 "\|
.as 13 "\*(14
.ds 14 "\(mi
.as 13 "\*(14
.ds 14 "\|
.as 13 "\*(14
.ds 14 "\(*D
.as 13 "\*(14
.ds 14 "\^f\|
.as 13 "\*(14
.ds 14 "\(sl
.as 13 "\|\*(14
.ds 14 "\f12\fP
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " to
.ps 12
.ft 2
.ds 13 "\(*l
.ds 14 "\|
.as 13 "\*(14
.ds 14 "\(pl
.as 13 "\*(14
.ds 14 "\|
.as 13 "\*(14
.ds 14 "\(*D
.as 13 "\*(14
.ds 14 "\^f\|
.as 13 "\*(14
.ds 14 "\(sl
.as 13 "\|\*(14
.ds 14 "\f12\fP
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ".
.ps \n(99
.ft \n(98
\*(12
.PP
The fact that we take point samples in the frequency continuum of
light implies that we are also taking point samples of the continuum of the
dispersion curve, as index of refraction is a function of frequency.
Thus we face the choice of whether to
jitter the frequency (and therefore the color) of the rays or the
refractive index of the material, or both.
Given that the the jittered sample at
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "frequency
.ps 12
.ft 2
.ds 13 "\^f\|
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " needs to be translated into
.ps 12
.ft 2
.ds 13 "R\|\f1(\fP\^f\|\|\f1)\fP
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ",
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "the value of the refractive index function
.ps 12
.ft 2
.ds 13 "R
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " at
.ps 12
.ft 2
.ds 13 "\^f\|
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ",
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "we will prefer to jitter a linear function
.ps 12
.ft 2
.ds 13 "R
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " over a nonlinear function
.ps \n(99
.ft \n(98
\*(12
for reasons of computational efficiency,
as linear interpolation is in general quicker to evaluate
than nonlinear interpolation.
.PP
This may motivate us to contrive piecewise linear
approximations to the spectrum and the dispersion curve.
It is unlikely that
the viewer of the final image will be able to discriminate between
a physically accurate nonlinear model and a computationally efficient
linear approximation;
furthermore, since the dispersion curve is specific to a given material,
to be true to nature
one would need to tabulate data for every distinct material to be rendered.
We therefore employ a
(one-piece)
linear approximation to the dispersion curve for our rendering dispersion model.
.PP
The refractive index and dispersive power for surfaces can be input
parameters.
Thus one can specify a polygon with an associated refractive index of,
for example, 4.2 and a dispersive power of perhaps 0.5, both of which are
outlandish in terms of the "real" world, but viable within our model.
It is interesting to create situations and materials which cannot exist
in our everyday experience;
this is part of the power of computer graphics.
.PP
The issue of which quantity to jitter, refractive index or color, or both,
should be evaluated in the light of computational efficiency.
The reason for jittering samples is to avoid spectral aliasing,
however,
it has been our experience that spectral aliasing is
not a significant problem in any but deliberately pathological scenes.
That is, the distinct overlapping images of different colors are simply
not readily visible unless the dispersive power is unrealistically high.
When jittering is deemed desirable, we jitter the frequency
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "of the ray and derive, in a pre-rendering operation, a constant
.ps 12
.ft 2
.ds 13 "c
.ds 14 "s
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 "
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "for each refractive surface
.ps 12
.ft 2
.ds 13 "s
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " in the scene:
.ps \n(99
.ft \n(98
\*(12
.EQ I (9)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "c
.ds 12 "s
.as 11 \v'18u'\s-3\*(12\s+3\|\v'-18u'
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "w
.ds 13 "\f1(\fP
.as 12 "\|\*(13
.ds 13 "\(*y
.as 12 "\*(13
.ds 13 "\|
.as 12 "\*(13
.ds 13 "\(mi
.as 12 "\*(13
.ds 13 "\|
.as 12 "\*(13
.ds 13 "\f11\fP
.as 12 "\*(13
.ds 13 "\f1)\fP
.as 12 "\*(13
.ds 13 "\
.as 12 "\*(13
.ds 13 "\(mi
.as 12 "\*(13
.ds 13 "\
.as 12 "\*(13
.ds 13 "\(*y
.as 12 "\*(13
.ds 13 "\f10\fP\f1.\fP\f17\fP\f16\fP
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'51u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-93u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'21u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 11 \x'0'\x'0-27u'\f2\s12\*(11\s\n(99\f\n(98\x'36u'
.nr 11 \w'\*(11'
.nr MK 0
.if 165>\n(.v .ne 165u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "where
.ps 12
.ft 2
.ds 13 "w
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the dispersive power,
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.ps 12
.ft 2
.ds 13 "\(*y
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the refractive index at the far red end of the spectrum,
.ps \n(99
.ft \n(98
\*(12
0.76 is the proportion of the spectrum that lies between the C and F
Fraunhofer lines.
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "This constant
.ps 12
.ft 2
.ds 13 "c
.ds 14 "s
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " when multiplied by the
.ps \n(99
.ft \n(98
\*(12
the frequency of a sample gives the refractive index at that frequency,
for use in calculations of propagation of refracted light.
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "(Note that this assumes that frequency is specified in the range
.ps 12
.ft 2
.ds 13 "\f1[\fP\f10\fP\f1.\fP\f1.\fP\f11\fP\f1]\fP
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ".)
.ps \n(99
.ft \n(98
\*(12
Thus the cost of jittering is reduced to one floating point multiplication
per surface encountered, plus the negligible preprocessing cost of evaluating
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.ps 12
.ft 2
.ds 13 "c
.ds 14 "s
.as 13 \v'18u'\s-3\*(14\s+3\|\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " for each relevant object in the scene and the cost of
.ps \n(99
.ft \n(98
\*(12
interpolating the color of the final sample.
.\" This file describes the construction of the fake spectrum.
.NH 2
Representing the Spectrum
.PP
To reproduce the spectrum, we must simulate the entire gamut of
monochromatic colors using only the three desaturated primaries of the
graphics monitor.
Furthermore, the integral of each of the red, green, and blue curves
of our simulated spectrum must be unity, or the reconstruction of an
image from our samples will be tinted, darkened, or overdriven.
We refer to this as the \fIsumming to white\fR criterion.
.PP
As we work within the \fIrgb\fR
color space, we should restate equation (9) in terms of the rgb vectors:
.EQ I (10)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "I
.ds 12 "t
.ds 13 "R
.as 12 \v'9u'\s-3\*(13\s+3\|\v'-9u'
.as 11 \v'18u'\s-3\*(12\s+3\v'-18u'
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 \s12\v'.1m'\s+4\(is\s-4\v'-.1m'\s12
.ds 13 "\f13\fP\f18\fP\f10\fP
.ds 13 \s7\*(13\s9
.ds 14 "\f18\fP\f10\fP\f10\fP
.ds 14 \s7\*(14\s9
.nr 12 \w'\s12\*(12'
.nr 15 \n(12
.nr 13 \w'\s9\*(13'
.if \n(13>\n(15 .nr 15 \n(13
.nr 14 \w'\s9\*(14'
.if \n(14>\n(15 .nr 15 \n(14
.ds 15 \v'63u'\h'\n(15u-\n(13u/2u'\s9\*(13\s12\h'-\n(15u-\n(13u/2u'\v'-63u'\
\h'\n(15u-\n(12u/2u'\*(12\h'\n(15u-\n(12u/2u'\
\v'-93u'\h'-\n(15u-\n(14u/2u'\s9\*(14\s12\h'\n(15u-\n(14u/2u'\v'93u'\
.as 11 "\*(15
.ds 12 "R
.as 11 "\*(12
.ds 12 "\f1(\fP
.as 11 "\|\*(12
.ds 12 "\(*l
.as 11 "\*(12
.ds 12 "\f1)\fP
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "T
.as 11 "\*(12
.ds 12 "\f1(\fP
.as 11 "\|\*(12
.ds 12 "\(*l
.as 11 "\*(12
.ds 12 "\f1)\fP
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "d
.as 11 "\*(12
.ds 12 "\(*l
.as 11 "\|\*(12
.ds 11 \x'0'\x'0-48u'\f2\s12\*(11\s\n(99\f\n(98\x'48u'
.nr 11 \w'\*(11'
.nr MK 0
.if 198>\n(.v .ne 198u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.EQ I (11)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "I
.ds 12 "t
.ds 13 "G
.as 12 \v'9u'\s-3\*(13\s+3\|\v'-9u'
.as 11 \v'18u'\s-3\*(12\s+3\v'-18u'
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 \s12\v'.1m'\s+4\(is\s-4\v'-.1m'\s12
.ds 13 "\f13\fP\f18\fP\f10\fP
.ds 13 \s7\*(13\s9
.ds 14 "\f18\fP\f10\fP\f10\fP
.ds 14 \s7\*(14\s9
.nr 12 \w'\s12\*(12'
.nr 15 \n(12
.nr 13 \w'\s9\*(13'
.if \n(13>\n(15 .nr 15 \n(13
.nr 14 \w'\s9\*(14'
.if \n(14>\n(15 .nr 15 \n(14
.ds 15 \v'63u'\h'\n(15u-\n(13u/2u'\s9\*(13\s12\h'-\n(15u-\n(13u/2u'\v'-63u'\
\h'\n(15u-\n(12u/2u'\*(12\h'\n(15u-\n(12u/2u'\
\v'-93u'\h'-\n(15u-\n(14u/2u'\s9\*(14\s12\h'\n(15u-\n(14u/2u'\v'93u'\
.as 11 "\*(15
.ds 12 "G
.as 11 "\*(12
.ds 12 "\f1(\fP
.as 11 "\|\*(12
.ds 12 "\(*l
.as 11 "\*(12
.ds 12 "\f1)\fP
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "T
.as 11 "\*(12
.ds 12 "\f1(\fP
.as 11 "\|\*(12
.ds 12 "\(*l
.as 11 "\*(12
.ds 12 "\f1)\fP
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "d
.as 11 "\*(12
.ds 12 "\(*l
.as 11 "\|\*(12
.ds 11 \x'0'\x'0-48u'\f2\s12\*(11\s\n(99\f\n(98\x'48u'
.nr 11 \w'\*(11'
.nr MK 0
.if 198>\n(.v .ne 198u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.EQ I (12)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "I
.ds 12 "t
.ds 13 "B
.as 12 \v'9u'\s-3\*(13\s+3\|\v'-9u'
.as 11 \v'18u'\s-3\*(12\s+3\v'-18u'
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 \s12\v'.1m'\s+4\(is\s-4\v'-.1m'\s12
.ds 13 "\f13\fP\f18\fP\f10\fP
.ds 13 \s7\*(13\s9
.ds 14 "\f18\fP\f10\fP\f10\fP
.ds 14 \s7\*(14\s9
.nr 12 \w'\s12\*(12'
.nr 15 \n(12
.nr 13 \w'\s9\*(13'
.if \n(13>\n(15 .nr 15 \n(13
.nr 14 \w'\s9\*(14'
.if \n(14>\n(15 .nr 15 \n(14
.ds 15 \v'63u'\h'\n(15u-\n(13u/2u'\s9\*(13\s12\h'-\n(15u-\n(13u/2u'\v'-63u'\
\h'\n(15u-\n(12u/2u'\*(12\h'\n(15u-\n(12u/2u'\
\v'-93u'\h'-\n(15u-\n(14u/2u'\s9\*(14\s12\h'\n(15u-\n(14u/2u'\v'93u'\
.as 11 "\*(15
.ds 12 "B
.as 11 "\*(12
.ds 12 "\f1(\fP
.as 11 "\|\*(12
.ds 12 "\(*l
.as 11 "\*(12
.ds 12 "\f1)\fP
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "T
.as 11 "\*(12
.ds 12 "\f1(\fP
.as 11 "\|\*(12
.ds 12 "\(*l
.as 11 "\*(12
.ds 12 "\f1)\fP
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "d
.as 11 "\*(12
.ds 12 "\(*l
.as 11 "\|\*(12
.ds 11 \x'0'\x'0-48u'\f2\s12\*(11\s\n(99\f\n(98\x'48u'
.nr 11 \w'\*(11'
.nr MK 0
.if 198>\n(.v .ne 198u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "where
.ps 12
.ft 2
.ds 13 "R
.ds 14 "\f1(\fP
.as 13 "\|\*(14
.ds 14 "\(*l
.as 13 "\*(14
.ds 14 "\f1)\fP
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ",
.ps 12
.ft 2
.ds 13 "G
.ds 14 "\f1(\fP
.as 13 "\|\*(14
.ds 14 "\(*l
.as 13 "\*(14
.ds 14 "\f1)\fP
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ", and
.ps 12
.ft 2
.ds 13 "B
.ds 14 "\f1(\fP
.as 13 "\|\*(14
.ds 14 "\(*l
.as 13 "\*(14
.ds 14 "\f1)\fP
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " are
.ps \n(99
.ft \n(98
\*(12
the values of the R, G, and B \fItristimulus\fR functions for
the metameric color used to represent
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "the color of monochromatic light of wavelength
.ps 12
.ft 2
.ds 13 "\(*l
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ".
.ps \n(99
.ft \n(98
\*(12
When sampling at a particular frequency then, we are actually taking three
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "(red, green, and blue) samples of
.ps 12
.ft 2
.ds 13 "T
.ds 14 "\f1(\fP
.as 13 "\|\*(14
.ds 14 "\(*l
.as 13 "\*(14
.ds 14 "\f1)\fP
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ".
.ps \n(99
.ft \n(98
\*(12
The distribution of the samples should be
tailored to the shape of the tristimulus
curves used in the representation of the spectrum,
with care taken to assure that
.EQ I (13)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 \s12\v'.3m'\s+5\(*S\s-5\v'-.3m'\s12
.ds 12 "i\|\(eq\f11\fP
.ds 13 "n
.nr 11 \w'\s12\*(11'
.nr 14 \n(11
.nr 12 \w'\s9\*(12'
.if \n(12>\n(14 .nr 14 \n(12
.nr 13 \w'\s9\*(13'
.if \n(13>\n(14 .nr 14 \n(13
.ds 14 \v'75u'\h'\n(14u-\n(12u/2u'\s9\*(12\s12\h'-\n(14u-\n(12u/2u'\v'-75u'\
\h'\n(14u-\n(11u/2u'\*(11\h'\n(14u-\n(11u/2u'\
\v'-66u'\h'-\n(14u-\n(13u/2u'\s9\*(13\s12\h'\n(14u-\n(13u/2u'\v'66u'\
.ds 11 "R
.as 14 "\*(11
.ds 11 "\f1(\fP
.as 14 "\|\*(11
.ds 11 "\(*l
.ds 12 "i
.as 11 \v'18u'\s-3\*(12\s+3\|\v'-18u'
.as 14 "\*(11
.ds 11 "\f1)\fP
.as 14 "\*(11
.ds 11 "\
.as 14 "\*(11
.ds 11 "\(eq
.as 14 "\*(11
.ds 11 "\
.as 14 "\*(11
.ds 11 \s12\v'.3m'\s+5\(*S\s-5\v'-.3m'\s12
.ds 12 "i\|\(eq\f11\fP
.ds 13 "n
.nr 11 \w'\s12\*(11'
.nr 15 \n(11
.nr 12 \w'\s9\*(12'
.if \n(12>\n(15 .nr 15 \n(12
.nr 13 \w'\s9\*(13'
.if \n(13>\n(15 .nr 15 \n(13
.ds 15 \v'75u'\h'\n(15u-\n(12u/2u'\s9\*(12\s12\h'-\n(15u-\n(12u/2u'\v'-75u'\
\h'\n(15u-\n(11u/2u'\*(11\h'\n(15u-\n(11u/2u'\
\v'-66u'\h'-\n(15u-\n(13u/2u'\s9\*(13\s12\h'\n(15u-\n(13u/2u'\v'66u'\
.as 14 "\*(15
.ds 11 "G
.as 14 "\*(11
.ds 11 "\f1(\fP
.as 14 "\|\*(11
.ds 11 "\(*l
.ds 12 "i
.as 11 \v'18u'\s-3\*(12\s+3\|\v'-18u'
.as 14 "\*(11
.ds 11 "\f1)\fP
.as 14 "\*(11
.ds 11 "\
.as 14 "\*(11
.ds 11 "\(eq
.as 14 "\*(11
.ds 11 "\
.as 14 "\*(11
.ds 11 \s12\v'.3m'\s+5\(*S\s-5\v'-.3m'\s12
.ds 12 "i\|\(eq\f11\fP
.ds 13 "n
.nr 11 \w'\s12\*(11'
.nr 15 \n(11
.nr 12 \w'\s9\*(12'
.if \n(12>\n(15 .nr 15 \n(12
.nr 13 \w'\s9\*(13'
.if \n(13>\n(15 .nr 15 \n(13
.ds 15 \v'75u'\h'\n(15u-\n(12u/2u'\s9\*(12\s12\h'-\n(15u-\n(12u/2u'\v'-75u'\
\h'\n(15u-\n(11u/2u'\*(11\h'\n(15u-\n(11u/2u'\
\v'-66u'\h'-\n(15u-\n(13u/2u'\s9\*(13\s12\h'\n(15u-\n(13u/2u'\v'66u'\
.as 14 "\*(15
.ds 11 "B
.as 14 "\*(11
.ds 11 "\f1(\fP
.as 14 "\|\*(11
.ds 11 "\(*l
.ds 12 "i
.as 11 \v'18u'\s-3\*(12\s+3\|\v'-18u'
.as 14 "\*(11
.ds 11 "\f1)\fP
.as 14 "\*(11
.ds 14 \x'0'\x'0-33u'\f2\s12\*(14\s\n(99\f\n(98\x'60u'
.nr 14 \w'\*(14'
.nr MK 0
.if 195>\n(.v .ne 195u
.rn 14 10
\*(10
.ps \n(99
.ft \n(98
.EN
.nr 99 \n(.s
.nr 98 \n(.f
.rm 11
.as 11 "where
.ps 12
.ft 2
.ds 12 "\(*l
.ds 13 "i
.as 12 \v'18u'\s-3\*(13\s+3\|\v'-18u'
.ds 12 \x'0'\f2\s12\*(12\s\n(99\f\n(98\x'3u'
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 " is the wavelength of the
.ps 12
.ft 2
.ds 12 "i
.ds 13 "th
.as 12 \v'-27u'\s-3\|\*(13\s+3\|\v'27u'
.ds 12 \x'0'\f2\s12\*(12\s\n(99\f\n(98
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 " sample,
.ps \n(99
.ft \n(98
\*(11
.nr 99 \n(.s
.nr 98 \n(.f
.rm 11
.as 11 "and
.ps 12
.ft 2
.ds 12 "R\|\f1(\fP
.ds 13 "\(*l
.ds 15 "i
.as 13 \v'18u'\s-3\*(15\s+3\|\v'-18u'
.as 12 "\*(13
.ds 13 "\f1)\fP
.as 12 "\*(13
.ds 12 \x'0'\f2\s12\*(12\s\n(99\f\n(98\x'3u'
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 ",
.ps 12
.ft 2
.ds 12 "G\|\f1(\fP
.ds 13 "\(*l
.ds 15 "i
.as 13 \v'18u'\s-3\*(15\s+3\|\v'-18u'
.as 12 "\*(13
.ds 13 "\f1)\fP
.as 12 "\*(13
.ds 12 \x'0'\f2\s12\*(12\s\n(99\f\n(98\x'3u'
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 ", and
.ps 12
.ft 2
.ds 12 "B\|\f1(\fP
.ds 13 "\(*l
.ds 15 "i
.as 13 \v'18u'\s-3\*(15\s+3\|\v'-18u'
.as 12 "\*(13
.ds 13 "\f1)\fP
.as 12 "\*(13
.ds 12 \x'0'\f2\s12\*(12\s\n(99\f\n(98\x'3u'
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 "
.ps \n(99
.ft \n(98
\*(11
.nr 99 \n(.s
.nr 98 \n(.f
.rm 11
.as 11 "are the red, green, and blue values, respectively, of sample
.ps 12
.ft 2
.ds 12 "\(*l
.ds 13 "i
.as 12 \v'18u'\s-3\*(13\s+3\|\v'-18u'
.ds 12 \x'0'\f2\s12\*(12\s\n(99\f\n(98\x'3u'
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 ".
.ps \n(99
.ft \n(98
\*(11
This equality is necessary in order to have the samples
(at their maximum intensity values)
sum to white in the rgb color space of the graphics monitor.
.NH 3
Linear Spectrum Model
.PP
A simple representation of the spectrum, given these constraints,
is shown in Figure 4.1.
.KF
.sp 3.5i
.nr PS 10
.QP
.ls 1
.ce
Figure 4.1. The rgb curves of the linear spectral representation.
.nr PS 12
.PP
.rs
.KE
This model has the advantage of being piecewise linear,
for fast interpolation of color, and it provides a reasonably good perceptual
representation of the spectrum.
It has the disadvantage of using a significant portion
of the power available to the red
primary, in the approximation of violet with magenta.
Violet is of higher frequency than is available with an rgb monitor and
therefore cannot be directly reproduced;
magenta is a visually acceptable substitute.
A problem with the magenta representation of violet is that edges which are
blurred by dispersion such that they should appear with the color sequence
yellow-orange-red-black, actually appear greenish-yellow-red-black.
.\" (See Plate 1.)
This is because in a white-to-black transition of this sort, the first
color to be subtracted out from the sum is violet.
When violet is represented as a sum of equal quantities of red and blue,
the subtraction of violet leaves a surplus of green.
This is a subtle effect, and escapes the notice of most viewers.
.PP
Another potential drawback of this representation of the spectrum is
the pronounced discontinuities in the first derivative of the rgb curves.
While this has the potential for causing color mach banding,
such an effect has only been observed in deliberately pathological scenes.
Yet another
problem found is that the red band in the spectrum appears too narrow,
again because some of the red energy is used to display violet.
The final problem is that the rolloff of red and violet to black is too
steep and short;
the entire curve bears no resemblance to the response curve of the
human visual system.
.PP
Despite the above drawbacks, we have found this to be a viable
representation of the visible spectrum.
.PP
We sample the representation of the spectrum
at 13 intervals centered on the vertical lines in Figure 4.1.
This provides a good basis for reconstruction of the spectrum
and preserves the summing to white property.
.\" When jittering the frequency of samples we can perform a fast linear
.\" interpolation of the ramps to get the color appropriate to a given frequency,
.\" just where necessary (e.g., where sloped).
However, when jittering we encounter the problem
that the samples may longer sum to white.
The noise added by uncorrelated jittering
of the 13 samples will generally skew the sum;
in practice this appears as a faint colorful noise, faint enough to not be
objectionable or even usually noticeable.
(This problem could be defeated by correlating the jittering of the 13
samples, but this is computationally expensive.)
Furthermore, about half the time the sum of jittered samples of a full intensity
white point will exceed unity.
If the sum is not clamped to unity at the high end,
overflow will occur and the color of the summed samples is likely to
wrap around to black.
This problem is defeated by clamping the sum, at minimal computational cost.
.NH 3
Empirical Spectrum Model
.PP
A more rigorous approach to the construction of the
representation of the spectrum is currently under development.
This approach
involves taking the \fIxyz\fR coordinates of the monochromatic spectral
colors and performing the appropriate linear transformation into rgb values.
Construction of the transformation matrix requires information about
the chromaticity coordinates of the specific monitor on which the spectrum
is to be displayed.\*([.19\*(.]
We use as input the xyz coordinates of monochromatic colors weighted by the
spectral radiant power distribution of the CIE standard illuminant B,
which is designed to emulate direct sunlight
(the light source for rainbows).
The following graphs are piecewise linear between samples taken at
.nr 99 \n(.s
.nr 98 \n(.f
.rm 11
.ps 12
.ft 2
.ds 12 "\f11\fP\f10\fP
.ds 12 \x'0'\f2\s12\*(12\s\n(99\f\n(98
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 "nm (nanometer) intervals from
.ps 12
.ft 2
.ds 12 "\f13\fP\f18\fP\f10\fP
.ds 12 \x'0'\f2\s12\*(12\s\n(99\f\n(98
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 " to
.ps 12
.ft 2
.ds 12 "\f17\fP\f17\fP\f10\fP
.ds 12 \x'0'\f2\s12\*(12\s\n(99\f\n(98
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 " nm.\*([.27\*(.]
.ps \n(99
.ft \n(98
\*(11
.KF
.sp 3.5i
.nr PS 10
.QP
.ls 1
.ce
Figure 4.2. The rgb curves of the empirical spectral representation.
.nr PS 12
.PP
.rs
.KE
.KF
.sp 3.5i
.nr PS 10
.QP
.ls 1
.ce
Figure 4.3. Summed rgb values, with and without negative values.
.nr PS 12
.PP
.rs
.KE
.PP
As our rgb primaries are not fully saturated, we expect that at all points
in the spectrum at least one of the rgb values will be negative.
This is indeed what we see in the curves of Figure 4.2.
The sum of these curves, with negative values included and with negative values
clamped to zero, are shown in Figure 4.3.
A more accurate approximation to the spectrum, without negative values,
could be attained be limiting the xyz input values to the color gamut of the
monitor.
.PP
Note that the curves in Figure 4.3 have a local minimum in the cyan area
of the spectrum.
These curves do not give an acceptable representation of the spectrum
on a monitor calibrated for perceptually linear contrast response;
the cyan and yellow colors appear far too dark.
.nr 99 \n(.s
.nr 98 \n(.f
.rm 11
.as 11 "When adjusted with a \fIgamma correction\fR of
.ps 12
.ft 2
.ds 12 "\f12\fP\f1.\fP\f15\fP
.ds 12 \x'0'\f2\s12\*(12\s\n(99\f\n(98
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 " to
.ps 12
.ft 2
.ds 12 "\f13\fP\f1.\fP\f10\fP
.ds 12 \x'0'\f2\s12\*(12\s\n(99\f\n(98
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 ", however,
.ps \n(99
.ft \n(98
\*(11
the zero-clamped curve gives a good representation of the spectrum.
Note also that the area under the zero clamped curves should be normalized
to meet the summing to white requirement.
.NH 2
Rainbow Models
.NH 3
Impressionistic Rainbow Model
.PP
We have developed two models of the rainbow, one very simple and
impressionistic or empirical, the other comparatively complex and
purely physical.
The former model entails using the 13 colors of our samples of the
linear spectrum model to create 13 different colors
of fog which compose a rainbow.
The fog function is simply an asymptotic replacement of
.nr 99 \n(.s
.nr 98 \n(.f
.rm 11
.as 11 "some percentage
.ps 12
.ft 2
.ds 12 "r
.ds 12 \x'0'\f2\s12\*(12\|\s\n(99\f\n(98
.as 11 \*(12
.ps \n(99
.ft \n(98
.as 11 " of the color value computed at the end of the ray,
.ps \n(99
.ft \n(98
\*(11
with the color value of the fog, based on the distance that the
ray has traveled:
.EQ I (14)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "r
.ds 12 "\
.as 11 "\|\*(12
.ds 12 "\(eq
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "e
.ds 13 "h
.ds 14 "d
.as 13 "\*(14
.ds 14 "\(sl
.as 13 "\|\*(14
.ds 14 "t
.as 13 "\*(14
.as 12 \v'-27u'\s-3\|\*(13\s+3\|\v'27u'
.as 11 "\*(12
.ds 11 \x'0'\f2\s12\*(11\s\n(99\f\n(98
.nr 11 \w'\*(11'
.nr MK 0
.if 84>\n(.v .ne 84u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "where
.ps 12
.ft 2
.ds 13 "h
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is a constant,
.ps 12
.ft 2
.ds 13 "d
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the distance, and
.ps 12
.ft 2
.ds 13 "t
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " is the \fItransmittance\fR
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "constant; note that
.ps 12
.ft 2
.ds 13 "t
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " has red, green, and blue components, usually equal.
.ps \n(99
.ft \n(98
\*(12
As that distance goes to infinity, the percentage of replacement goes to 100.
The 13 colored fogs are invoked in concentric rings
(cones, actually) around the \fIantisolar vector\fR,
e.g., the vector from the light source to the eye point.
This vector corresponds to the ray from the observer to the antisolar point
in Figure 3.3.
Each ring is a band of some angular width, at some angular offset from the
antisolar vector.
We construct the rainbow by taking the dot product of each ray traced, with the
antisolar vector; this dot product gives us the cosine of the angle between
the two vectors.
This cosine is then used as an index into a table of the 13 colored fogs.
The indexing function can be parameterized to vary the width and angular
placement of the rainbow.
The following C code segment implements this parameterized rainbow:
.sp 1
.nr PS 10
.nr VS 10
.LP
.nf
.vS
index = ( DOT(ray\*_direction, antisolar\*_ray)
\*- rainbow\*_angle) \f2*\fP rainbow\*_width;
'FN if
\*(+Kif\*(-K (jitter\*_option)
index += jitter(delta);
'FN if
\*(+Kif\*(-K ((index >= 0) && (index < FREQUENCIES))
Fog = Rainbow[(\*(+Kint\*(-K)index];
\*(+Kelse\*(-K Fog = NULL;
.vE
.fi
.nr PS 12
.nr VS 12
.sp 1
.LP
where "ray_direction" and "antisolar_ray" are vectors,
"Fog" and "Rainbow[]" are
pointers to structures for the "fog" type, and the other variables are
floating point type.
The constant "FREQUENCIES" is equal to 13;
the function call
"jitter(delta)" returns a random value of uniform distribution in the range
[-delta/2..delta/2].
.PP
The jitter option turns a rainbow composed of concentric bands of color
to a more attractive "fuzzy" rainbow.
This jittered rainbow can look fairly realistic,
particularly when supersampling is employed to soften the noise
introduced by the jittering.
.\" (See Plate 1.)
Note that this scheme only jitters the index to the table of colored fogs,
and not the color of the fog itself;
an improvement would be to add such color jittering.
.NH 3
Physical Rainbow Model
.PP
The above approach is \fIad hoc\fR and is not really based on a dispersion
model, but it uses the spectral representation of our dispersion scheme.
A more rigorous and complex approach, yielding a more realistic result,
is to recreate Descartes' simulation using dispersion.
We will have to integrate Descartes' raindrop over the visible
frequencies of light;
this entails ray tracing Descartes' raindrop at a variety of frequencies
and summing the results.
Clearly it is inefficient to ray trace Descartes' raindrop for every ray
spawned in the process of rendering a scene;
fortunately we can do much better than this.
We need only perform the integration over frequency of Descartes' raindrop
once, in a preprocessing step, to build a table of fogs similar to that
used in the our simpler rainbow model.
This table will need to have a relatively large number of entries, as
a real rainbow is an illumination effect that covers most of the sky,
though mostly to a very subtle degree.
Thus we have entries for a large number of angular displacements,
over a 180 degree range.
(In practice, no fog might be required in the 10 degree interval of Alexander's
band, as no light is returned there by refraction.)
.PP
The first step in implementation of the physical model is to generate an
algorithm for ray tracing Descartes' raindrop.
This means calculating the angle of emergence and energy attenuation factor
for rays which are reflected once and twice inside the raindrop, as a
function of the impact parameter.
The angle of emergence of a given ray is determined by the geometric optics
of reflection and refraction in a sphere,
while the energy transfer is determined by the physics of reflection and
refraction of light as it interacts with air/water boundaries.
.PP
The geometric optics of Descartes' raindrop are illustrated in Figure 4.4.
.KF
.sp 5i
.nr PS 10
.QP
.ls 1
.ce
Figure 4.4 The geometric optics of Descartes' raindrop.
.nr PS 12
.PP
.rs
.KE
.\" .LP
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "Note that we can take advantage of the equality of angles
.ps 12
.ft 2
.ds 13 "\(*h
.ds 14 "\f11\fP
.as 13 \v'18u'\s-3\*(14\s+3\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " and
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.ps 12
.ft 2
.ds 13 "\(*h
.ds 14 "\f12\fP
.as 13 \v'18u'\s-3\*(14\s+3\v'-18u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98\x'3u'
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ".
.ps \n(99
.ft \n(98
\*(12
Once this geometry is established, it is straightforward to program
an algorithm to trace the required rays.
.PP
For the purposes of computer graphics, we are generally not concerned with
the polarization of light, and generalizations of the Fresnel equation for
non-polarized light are usually employed.
For this simulation, however, we are more interested in physical veracity than
computational efficiency, so we choose the formulation of the
equation as it appears in equations 4, 5, and 6.
.\" This also allows us to observe the relationship of energy transfer to
.\" polarization, for scientific interest.
.\" Graph 4.1 shows the intensity transferred as a function of frequency,
.\" for light polarized both perpendicular and parallel to the tangent plane of
.\" of the surface.
.\" .KF
.\" .sp 3i
.\" .nr PS 10
.\" .QP
.\" .ls 1
.\" .ce
.\" Graph 4.1 Intensity of transferred light at perpendicular and parallel polarizations.
.\" .nr PS 12
.\" .PP
.\" .rs
.\" .KE
.\" .LP
Note that the orientation of polarization to the surface is preserved
through reflections and refractions in a spherical raindrop.
.PP
Also in the interest of physical accuracy, we use a nonlinear approximation
of the dispersion curve of water in our rainbow simulation.
Using actual measurements of the refractive index of water at various
frequencies\*([.12\*(.]
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "we derive constants
.ps 12
.ft 2
.ds 13 "a
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " and
.ps 12
.ft 2
.ds 13 "b
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " of Cauchy's equation for refractive index,
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "getting
.ps 12
.ft 2
.ds 13 "a
.ds 14 "\
.as 13 "\|\*(14
.ds 14 "\(eq
.as 13 "\*(14
.ds 14 "\
.as 13 "\*(14
.ds 14 "\f11\fP\f1.\fP\f13\fP\f12\fP\f13\fP\f19\fP
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " and
.ps 12
.ft 2
.ds 13 "b
.ds 14 "\
.as 13 "\|\*(14
.ds 14 "\(eq
.as 13 "\*(14
.ds 14 "\
.as 13 "\*(14
.ds 14 "\f13\fP\f11\fP\f11\fP\f16\fP\f1.\fP\f13\fP
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ".
.ps \n(99
.ft \n(98
\*(12
The first two elements of the Cauchy series
.EQ I (15)
.nr 99 \n(.s
.nr 98 \n(.f
.ps 12
.ft 2
.ds 11 "\(*y
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "a
.ds 13 "\(*l
.ds 14 "\f10\fP
.as 13 \v'-27u'\s-3\*(14\s+3\v'27u'
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'63u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-105u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'21u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\(pl
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "b
.ds 13 "\(*l
.ds 14 "\f12\fP
.as 13 \v'-27u'\s-3\*(14\s+3\v'27u'
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'63u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-105u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'21u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "\(eq
.as 11 "\*(12
.ds 12 "\
.as 11 "\*(12
.ds 12 "a
.as 11 "\*(12
.ds 12 "\|
.as 11 "\|\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\(pl
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "\|
.as 11 "\*(12
.ds 12 "b
.ds 13 "\(*l
.ds 14 "\f12\fP
.as 13 \v'-27u'\s-3\*(14\s+3\v'27u'
.nr 12 \w'\s12\*(12'
.nr 13 \w'\s12\*(13'
.nr 14 \n(12
.if \n(13>\n(14 .nr 14 \n(13
.nr 14 \n(14+\s12.5m\s0
.ds 12 \v'63u'\h'\n(14u-\n(13u/2u'\*(13\
\h'-\n(13u-\n(12u/2u'\v'-105u'\*(12\
\h'-\n(14u-\n(12u/2u+.1m'\v'21u'\l'\n(14u-.2m'\h'.1m'\v'21u'
.as 11 "\*(12
.ds 11 \x'0'\x'0-27u'\f2\s12\*(11\s\n(99\f\n(98\x'48u'
.nr 11 \w'\*(11'
.nr MK 0
.if 177>\n(.v .ne 177u
.rn 11 10
\*(10
.ps \n(99
.ft \n(98
.EN
give a good approximation to the dispersion curve of water
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "with the derived values of
.ps 12
.ft 2
.ds 13 "a
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " and
.ps 12
.ft 2
.ds 13 "b
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ":
.ps \n(99
.ft \n(98
\*(12
over the wavelength range from 405 to 670 nanometers, the calculated values
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "of
.ps 12
.ft 2
.ds 13 "\(*y
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " agree with measured values to within plus or minus
.ps 12
.ft 2
.ds 13 "\f10\fP\f1.\fP\f10\fP\f10\fP\f10\fP\f11\fP
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 ",
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "or
.ps 12
.ft 2
.ds 13 "\f10\fP\f1.\fP\f18\fP
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " of one percent.
.ps \n(99
.ft \n(98
\*(12
We use a refractive index of 1.0003 for air.
.PP
Our first implementation of the physical rainbow model uses samples
taken at 13 fixed, evenly spaced frequencies or wavelengths.
(We relax our rigor in the use of "frequency" and "wavelength"
here, as the visible
spectrum is usually specified by wavelengths of light in a vacuum.)
We trace 50,000 rays per wavelength, over the range of impact parameters.
For each wavelength sampled,
the intensities of the emerging rays are summed by angle of emergence
in a linear array of 1800 buckets.
The intensities in each bucket are then multiplied by the rgb vector
of the representative color for that wavelength and added to buckets
of a similar array of rgb intensities by angle.
After all wavelengths have been sampled, the results in the rgb array
are normalized and inverted for use in the fog function.
Unlike the \fIad hoc\fR rainbow model, the fogs used are not themselves
colored, but rather their transmittances,
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.ps 12
.ft 2
.ds 13 "t
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " in equation (14),
.ps \n(99
.ft \n(98
\*(12
are unequal in red, green, and blue.
Thus the fogs have no intrinsic color, but red, green, and blue values
at ray endpoints are replaced at independent rates per unit distance.
This prevents unnecessary filtering by attenuation of colors behind the rainbow.
.PP
Our first approach evidences significant spectral aliasing.
Spectral aliasing is accentuated in the rainbow model, as the bright
feature at the Descartes ray is quite narrow and pronounced
for a point light source,
resulting in thin concentric rings of color in the rainbow.
The rings are more widely spaced and therefore
more evident in the violet end of the spectrum,
as the dispersion curve is steeper at shorter wavelengths.
.PP
A second implementation employs spectral antialiasing.
Again we sample at 13 distinct frequency intervals, but we jitter the
samples within the intervals.
This approach requires that we
multiply the intensity of the ray by the interpolated rgb
value for its specific frequency, and store that vector in the rgb array
immediately, rather than using an intermediate storage array,
as the colors of individual rays will vary.
This has the effect of blurring and merging the rings produced by discrete
sampling.
.PP
Again, the process described above yields the rainbow produced by a point light
source,
thus the rings of color produced by spectral aliasing are quite narrow
and distinct.
In nature rainbows are produced by the sun, which has an angular diameter
of approximately one half of one degree.
Convolution of the final rgb tables with a (one dimensional) kernel which
represents the disk of the sun
spreads each of the rings over one half a degree of angle.
The kernel we use is five entries wide, corresponding to the fact that
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 "our fog samples are taken at
.ps 12
.ft 2
.ds 13 "\f11\fP\(sl\f11\fP\f10\fP
.ds 14 "th
.as 13 \v'-27u'\s-3\*(14\s+3\|\v'27u'
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " degree intervals.
.ps \n(99
.ft \n(98
\*(12
Since the entire angular width of the rainbow is approximately two degrees,
this blurs the rings together well enough to provide very good
spectral antialiasing.
If the area under the curve of the semicircular kernel is normalized,
there will be no net change in the density of the fog tables after the
convolution.
.PP
.\" Plate 2 shows another feature of our rainbow models.
We employ another feature of our rainbow models.
In nature, rainbows are rarely perfect arcs, in fact one most often
sees only a portion of the full rainbow arc.
Rainbows are modulated by two factors:
shadows of the clouds from which the rain is falling,
and the distribution of the falling rain itself.
In an effort to make our rainbows look more natural,
we modulate intensity of the rainbow with Perlin's\*([.18\*(.]
"Chaos()" texture.
This is a \fIsolid\fR or \fIprocedural\fR texture which takes a vector
as input and returns a stochastic scalar quantity with a
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.ps 12
.ft 2
.ds 13 "\f11\fP\(sl
.ds 14 "\^f\|
.ds 15 "\f12\fP
.as 14 \v'-27u'\s-3\|\*(15\s+3\v'27u'
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 " power spectrum.
.ps \n(99
.ft \n(98
\*(12
.nr 99 \n(.s
.nr 98 \n(.f
.rm 12
.as 12 ".\" e.g., it is a stochastic function
.ps 12
.ft 2
.ds 13 "F\|\f1:\fPR
.ds 14 "\f13\fP
.as 13 \v'-27u'\s-3\|\*(14\s+3\v'27u'
.ds 14 "\(->
.as 13 "\*(14
.ds 14 "R
.as 13 "\*(14
.ds 13 \x'0'\f2\s12\*(13\|\s\n(99\f\n(98
.as 12 \*(13
.ps \n(99
.ft \n(98
.as 12 "
.ps \n(99
.ft \n(98
\*(12
.\" with spatial coherence properties.
The vector we pass to the texture is the ray direction; we use the scalar
value returned to modulate the transmittance of the rainbow fogs.
The frequency content of the Chaos() function can be parameterized for
varying effects, and the texture can be scaled on a vertical or slanted
axis to simulate sheets of falling rain.
.\" .so efficiency
.\" .so future_work
.NH
CONCLUSION
.PP
A model of dispersive refraction within the distributed ray tracing
paradigm has been implemented, with good subjective results.
The problem of representing the spectrum of monochromatic colors
within the rgb color space has been addressed, but not solved to
final satisfaction;
further work is called for here.
.PP
Physical and empirical/impressionistic models of the rainbow have been
developed, using the above results.
In contrast to the dispersion model, the rainbow models are relatively
efficient to render, because of their table-lookup implementation.
The rainbow models are suitable for Z-buffer rendering schemes, as well
as ray tracing.
.\" .so acknowledgements
.\" set the biblio in smaller type to save space
.\" .nr PS 10
.\" .nr VS 10
.\" output the bibliography
.]<
.\"Besancon.R.M.-1974-1
.ds [F 1
.]-
.ds [A R. M. Besancon
.ds [T The Encyclopedia of Physics
.ds [I Van Nostrand Reinhold Company
.ds [C New York
.ds [D 1974
.nr [T 0
.nr [A 0
.nr [O 0
.][ 2 book
.\"Born.M-1980-2
.ds [F 2
.]-
.ds [A Max Born
.as [A " and Emil Wolf
.ds [T Principles of Optics
.ds [I Pergamon Press
.ds [C Oxford
.ds [D 1980
.nr [T 0
.nr [A 0
.nr [O 0
.][ 2 book
.\"Cook.R.L.-1981-3
.ds [F 3
.]-
.ds [A Robert L. Cook
.as [A " and Kenneth E. Torrance
.ds [T A Reflectance Model for Computer Graphics
.ds [J Computer Graphics
.ds [V 15
.ds [N 3
.ds [P 307-316
.nr [P 1
.ds [D August, 1981
.nr [T 0
.nr [A 0
.nr [O 0
.][ 1 journal-article
.\"Cook.R.L.-1984-4
.ds [F 4
.]-
.ds [A Robert L. Cook
.as [A ", Thomas Porter
.as [A ", and Loren Carpenter
.ds [T Distributed Ray Tracing
.ds [J Computer Graphics
.ds [V 18
.ds [N 3
.ds [P 137-145
.nr [P 1
.ds [D July, 1984
.nr [T 0
.nr [A 0
.nr [O 0
.][ 1 journal-article
.\"Cook.R.L.-1984-5
.ds [F 5
.]-
.ds [A Robert L. Cook
.ds [T Shade Trees
.ds [J Computer Graphics
.ds [V 18
.ds [N 3
.ds [P 223-230
.nr [P 1
.ds [D July, 1984
.nr [T 0
.nr [A 0
.nr [O 0
.][ 1 journal-article
.\"Cook.R.L.-1986-6
.ds [F 6
.]-
.ds [A Robert L. Cook
.ds [T Stochastic Sampling in Computer Graphics
.ds [J ACM Trans. on Graphics
.ds [V 5
.ds [N 1
.ds [P 51-72
.nr [P 1
.ds [D January, 1986
.nr [T 0
.nr [A 0
.nr [O 0
.][ 1 journal-article
.\"Cornsweet.T.N.-1970-7
.ds [F 7
.]-
.ds [A T. N. Cornsweet
.ds [T Visual Perception
.ds [I Academic Press
.ds [C New York
.ds [D 1970
.nr [T 0
.nr [A 0
.nr [O 0
.][ 2 book
.\"Fournier.A-1987-8
.ds [F 8
.]-
.ds [A Alain Fournier
.ds [T Modelling Natural Phenomena
.ds [J SIGGRAPH Course Notes
.ds [D 1987
.nr [T 0
.nr [A 0
.nr [O 0
.][ 1 journal-article
.\"Fournier.A-1987-9
.ds [F 9
.]-
.ds [A Alain Fournier
.ds [T personal communications
.ds [D 1987
.nr [T 0
.nr [A 0
.nr [O 0
.][ 0 other
.\"Greenler.R.-1980-10
.ds [F 10
.]-
.ds [A R. Greenler
.ds [T Rainbows, Halos, and Glories
.ds [I Cambridge University Press
.ds [C Cambridge
.ds [D 1980
.nr [T 0
.nr [A 0
.nr [O 0
.][ 2 book
.\"Kajiya.J.T.-1986-11
.ds [F 11
.]-
.ds [A James T. Kajiya
.ds [T The Rendering Equation
.ds [J Computer Graphics
.ds [V 20
.ds [N 4
.ds [P 143-150
.nr [P 1
.ds [D August, 1986
.nr [T 0
.nr [A 0
.nr [O 0
.][ 1 journal-article
.\"Kaye.G.W.C.-1973-12
.ds [F 12
.]-
.ds [A G. W. C. Kaye
.as [A " and T. H. Laby
.ds [T Tables of Physical and Chemical Constants, 14th Edition
.ds [P 95
.nr [P 0
.ds [I Longman Group Ltd.
.ds [C London
.ds [D 1973
.nr [T 0
.nr [A 0
.nr [O 0
.][ 2 book
.\"Lee.M.E.-1985-13
.ds [F 13
.]-
.ds [A Mark E. Lee
.as [A ", Richard A. Redner
.as [A ", and Samuel P. Uselton
.ds [T Statistically Optimized Sampling for Distributed Ray Tracing
.ds [J Computer Graphics
.ds [V 19
.ds [N 3
.ds [P 61-67
.nr [P 1
.ds [D July 1985
.ds [K stratified sampling
.nr [T 0
.nr [A 0
.nr [O 0
.][ 1 journal-article
.\"Minnaert.M.-1954-14
.ds [F 14
.]-
.ds [A M. Minnaert
.ds [T The Nature of Light and Colour in the Open Air
.ds [I Dover
.ds [C New York
.ds [D 1954
.nr [T 0
.nr [A 0
.nr [O 0
.][ 2 book
.\"Musgrave.F.K-1987-15
.ds [F 15
.]-
.ds [A F. Kenton Musgrave
.ds [T A Realistic Model of Refraction for Computer Graphics
.ds [J Masters Thesis
.ds [I University of California at Santa Cruz
.ds [C Santa Cruz, California
.ds [D September, 1987
.nr [T 0
.nr [A 0
.nr [O 0
.][ 1 journal-article
.\"Musgrave.F.K-1988-16
.ds [F 16
.]-
.ds [A F. Kenton Musgrave
.ds [T A Realistic Model of Refraction for Computer Graphics
.ds [J Modelling and Simulation on Microcomputers 1988, conference proceedings
.ds [P 37-43
.nr [P 1
.ds [I Society for Computer Simulation
.ds [C San Diego
.ds [D Feb. 1988
.nr [T 0
.nr [A 0
.nr [O 0
.][ 1 journal-article
.\"Nussenzveig.H.M-1977-17
.ds [F 17
.]-
.ds [A H. Moyses Nussenzveig
.ds [T The Theory of the Rainbow
.ds [J Scientific American
.ds [P 55-65
.nr [P 1
.ds [D April, 1977
.nr [T 0
.nr [A 0
.nr [O 0
.][ 1 journal-article
.\"Perlin.K-1985-18
.ds [F 18
.]-
.ds [A Ken Perlin
.ds [T An Image Synthesizer
.ds [J Computer Graphics
.ds [V 19
.ds [N 3
.ds [P 287-296
.nr [P 1
.ds [D July, 1985
.nr [T 0
.nr [A 0
.nr [O 0
.][ 1 journal-article
.\"Rogers.D.F.-1985-19
.ds [F 19
.]-
.ds [A D. F. Rogers
.ds [T Procedural Elements for Computer Graphics
.ds [I Mc Graw Hill
.ds [C New York
.ds [D 1985
.ds [K color spaces
.nr [T 0
.nr [A 0
.nr [O 0
.][ 2 book
.\"Slyusarev.G.G.-1984-20
.ds [F 20
.]-
.ds [A G. G. Slyusarev
.ds [T Aberration and Optical Design Theory
.ds [I Adam Hilger Ltd
.ds [C Bristol
.ds [D 1984
.nr [T 0
.nr [A 0
.nr [O 0
.][ 2 book
.\"Southall.J.P.C.-1933-21
.ds [F 21
.]-
.ds [A James P. C. Southall
.ds [T Mirrors, Prisms, and Lenses
.ds [I MacMillan Company
.ds [C New York
.ds [D 1933
.nr [T 0
.nr [A 0
.nr [O 0
.][ 2 book
.\"Sparrow.E.M.-1978-22
.ds [F 22
.]-
.ds [A Ephraim M. Sparrow
.as [A " and R. D. Cess
.ds [T Radiation Heat Transfer
.ds [P 64-68
.nr [P 1
.ds [I McGraw-Hill
.ds [C New York
.ds [D 1978
.nr [T 0
.nr [A 0
.nr [O 0
.][ 2 book
.\"Thomas.S.W.-1986-23
.ds [F 23
.]-
.ds [A Spencer W. Thomas
.ds [T Dispersive Refraction in Ray Tracing
.ds [J Visual Computer
.ds [V 2
.ds [N 1
.ds [I Springer International
.ds [P 3-8
.nr [P 1
.ds [D January, 1986
.nr [T 0
.nr [A 0
.nr [O 0
.][ 1 journal-article
.\"Whitted.T-1980-24
.ds [F 24
.]-
.ds [A Turner Whitted
.ds [T An Improved Illumination Model for Shaded Display
.ds [J CACM
.ds [V 23
.ds [N 6
.ds [P 343-349
.nr [P 1
.ds [D June, 1980
.nr [T 0
.nr [A 0
.nr [O 0
.][ 1 journal-article
.\"Whitted.T-1987-25
.ds [F 25
.]-
.ds [A Turner Whitted
.ds [T personal communications
.ds [D 1987
.nr [T 0
.nr [A 0
.nr [O 0
.][ 0 other
.\"Wood.R.W.-1911-26
.ds [F 26
.]-
.ds [A Robert W. Wood
.ds [T Physical Optics
.ds [I MacMillan Company
.ds [C New York
.ds [D 1911
.nr [T 0
.nr [A 0
.nr [O 0
.][ 2 book
.\"Wyszecki.G.-1967-27
.ds [F 27
.]-
.ds [A G. Wyszecki
.as [A " and W. S. Stiles
.ds [T Color Science: Concepts and Methods, Quantitative Methods and Formulas
.ds [I Wiley-Interscience
.ds [C New York
.ds [D 1967
.nr [T 0
.nr [A 0
.nr [O 0
.][ 2 book
.]>
.\" output the table of contents
.\" .TC
'ps 10
'vs 11
'-F
.()
.bp