Errata for Principles of Digital Image Synthesis

Errata for Principles of Digital Image Synthesis

by Andrew S. Glassner

Published by Morgan-Kaufmann, Inc. 

The latest version of this document can always be found on my website, https://www.glassner.com.

Corrected PDF Now Available!

The copyright for Principles of Digital Image Synthesis was returned to me in late 2010, and I released the book through Google Books under a Creative Commons license.

But wait, it gets better! Soon after these files appeared, Iliyan Georgiev augmented them by incorporating all the errata up to January 2011 right into the PDF file! In addition to this valuable enhancement, the entire book is now in one PDF file that can be text-searched, and there are links from the Table of Contents to the body of the text. Thanks, Iliyan!

And now thanks to Eric Haines, this new PDF is available for download from his Real-Time Rendering blog here (right-click the link and choose “Save link as…”).

I strongly recommend using one of the above versions, because they have the errata included. If you want the raw scans from Google Books, you can find them here: Volume 1 (ignore that the title of the page says “Volume 2”) and Volume 2.

About the Errata

Below is a list of the all the typos in my book that I’ve confirmed. I’ve identified each error with the name of the first person who reported it to me. Note that I have generally tried to fix each typo in the least intrusive way; for practical reasons, I generally have tried to avoid rewriting. Several people have also sent in editorial suggestions; these are not reflected in this list of errata.

Math is notoriously hard in HTML. I wanted to keep everything pretty much pure-text here, so you can still use this errata without fancy math plug-ins for your browser. I’m representing most things here in a LaTeX-inspired form. The underscore _ begins a subscript, the exponent ^ a superscript. I’ll use parentheses when appropriate. Something beginning with a backslash (e.g. \lambda) is usually a Greek letter or a funny symbol. Complicated exponents or subscripts will usually be grouped with curly braces.

Please send new errata to andrew at the domain glassner.com.

Last updated 12 January 2011

Bug Catchers

Thank you to:
Harrison Ainsworth, David Banks, Gladimir Baranoski, Gary Bishop, Jim Blinn, Jonathan Blocksom, Mark Bolstad, Chung-Fa Chang, Russell Corfman, Michael Cox, Caroline Dahllof , Ioana Danciu, Stephen Diverdi, Dietmar Dreyer, Ugo Erra, Cass Everitt, Chris Faigle, Davide Gadia, Neil Gatenby, John C. Hart, Paul Heckbert, Anil Hirani, Steve Hollasch, Kim Dong Ho, Ju-Wei Huang, Thiago Ize, Werner Jainek, Fernando Jorge, Janne Koponen, Atin Atul Kothari, Alex Kulungowski, Andrew Kunz, Christian Laforte, Paul Lalonde, Bob Lewis, Dani Lischinski, Yang Liu, Ben Luna, Mike McCarthy, Cuneyt Ozdas, Gustavo A. Patow, Darrell Plank, Francesc Sala, David Salesin, Stephan Schaefer, Davide Selmo, Shubhabrata Sengupta, Peter Shirley, Torsten Techmann, Seth Teller, Nicolas Tenoutasse, Alade Tokuta, Jeremy D. Wendt, and Steve Worley.

Errata

  • Copyright page, both volumes / Andrew

    Remove all text starting with “(c) 1995 by Morgan Kaufmann…” and ending with “…permission of the publisher.” and replace it with “All contents are copyright (c) 2010 by Andrew Glassner. This book is not in the public domain, but it has been made available by the author under the terms of the Creative Commons Attribution-NonCommercial 3.0 Unported License. Contact information for the author is available at www.glassner.com”

  • xxvi / 4th paragraph / Andrew

    Dan Russel should be Dan Russell

  • xxvii / 5th paragraph / Andrew

    “Eric Braun, Chuck Mosher, and Pamela St. John helped me…”

  • Pg. 6 / 2nd paragraph / David Salesin

    “as shown in Figure 1.3 – this is the center of the crystalline lens.”

  • Pg. 23 / 1st paragraph / David Banks

    “…comes from trying to interpret intriguing phenomena…”

  • Pg. 49 / 1st paragraph / David Salesin

    “Thus to match C(\lambda) using standard sources x_s(\lambda), y_s(\lambda), z_s(\lambda)”

  • Pg. 49 / Eq. 1.1 / David Salesin

    C(\lambda) = X x _s(\lambda) + Y y _s(\lambda) + Z z _s(\lambda)

  • Pg. 49 / 3rd paragraph / Gary Bishop

    Final sentence should read, “The triangle in Figure 3.32 shows the subset of colors…”

  • Pg. 65 / Equation 2.9 / Ioana Danciu & John C. Hart, and Neil Gatenby

    The denominators 500 and 200 need to be multiplied by L*, and the + sign in the second equation should be a minus.

    X = Xn[(Y/Yn)^(1/3) + (a*/(500 L*))]^3

    Z = Zn[(Y/Yn)^(1/3) – (b*/(200 L*))]^3

  • Pg. 65 / Equation 2.9 / Jeremy D. Wendt

    The equations for converting XYZ to LAB use an approximation (Equation 2.5)
    that isn’t used when coming back, which can introduce some distortion.
    Here’s a snippet of pseudo-code by Jeremy to convert LAB to XYZ.
    pow(a,b) computes a to the b power,
    and cbrt(x) computes the cube root of x (cbrt(x)=pow(x,1/3)).

    LABtoXYZ
    if (L* == 0) { return (0, 0, 0); }
    Y/Yn = L* / 903.3;
    if (Y/Yn < .008856) {
    Y = Y/Yn * white.Y;
    X = white.X * ((a*)/(500 * (L*) * 7.787) + Y/Yn);
    Z = white.Z * (Y/Yn – (b*)/(200 * (L*) * 7.787));
    } else {
    Y = white.Y * pow((((L*)+16.0)/116.0), 3);
    Y/Yn = cbrt(Y/white.Y);
    X = white.X * pow((Y/Yn+((a*)/500.0/(L*))), 3);
    Z = white.Z * pow((Y/Yn-((b*)/200.0/(L*))), 3);
    }
    return XYZ

  • Pg. 76 / line 6 / Shubhabrata Sengupta

    In the phrase “For example, phosphors may be impregnated with
    pigments that absorb light near…” replace
    “absorb” with “reflect”

  • Pg. 79 / Figure 3.7 / Russell Corfman

    The label for the horizontal axis should replace
    the word “units” with “multiples”

  • Pg. 82 / Next-to-last paragraph / Russell Corfman

    In the last sentence, replace phrase “white to black pixels”
    with “white to total pixels”

  • Pg. 82 / Equation 3.9 / Russell Corfman

    Replace denominator with “total number of pixels”

  • Pg. 83 / Figure 3.12 / Russell Corfman

    The phosphor labeled “D_3” should be labeled “B_3”

  • Pg. 85 / Last sentence / Russell Corfman

    Replace “Table 3.5” with “Table 3.6”

  • Pg. 92 / Second paragraph / Russell Corfman

    Replace “Table 3.8” with “Table 3.9”

  • Pg. 102 / 1st paragraph / Gary Bishop

    “Referring to Figure 3.32, the triangle shows the subset…”

  • Pg. 119 / 3rd paragraph / David Banks

    “…we want to show; consider it as a grey-level image….”

  • Pg. 133 / Figure 4.6 / Andrew Kunz

    The + in the lower-left corner should be a multiplication sign.

  • Pg. 139 / 3rd paragraph / Anil Hirani

    Angle z = tan^{-1}[Im(z)/Re(z)]

  • Pg. 141 / Table 4.1, Property E13 / Christian Laforte

    The denominator should be simply “2”

  • Pg. 142 / Equation 4.12, line 3 / Michael Cox (also Mark Bolstad, Darrell Plank, David Banks)

    The second exponential doesn’t have the e on the baseline:

    =e^(j\omegat) e^(j\omega2\pi/\omega)

  • Pg. 143 / 2nd paragraph / David Banks and Wolfgang Stuerzlinger-Protoy

    “…the German word eigen, meaning “typical” or “particular”.”

  • Pg. 144 / 7th paragraph / David Banks

    The utility of the braket notation is that it…

  • Pg. 149 / Figure 4.13 / Christian Laforte

    The caption should read
    “The unit step function shifted right. The graph shows u(t-1).”

  • Pg. 149 / Equation 4.25 / Christian Laforte

    The minus sign before the integral should be deleted.

  • Pg. 151 / Equation 4.31 / Anil Hirani

    In the right-hand side, the argument to f should be (\tau/a)

  • Pg. 156 / Eq. 4.45 / David Banks

    The argument to f inside the integral should be \tau, not t:

    L{f(t)} = \int f(\tau) h(t-\tau) d\tau

  • Pg. 156 / Eq. 4.46 / David Banks

    The argument to f inside the integral should be \tau, not t:

    f(t) * h(t) = \int f(\tau) h(t-\tau) d\tau

  • Pg. 158 / Eq. 4.48 / Yang Liu

    The argument in the delta function is incorrect:

    y(t) = f(t) * s(t) = \int f(tau) \sum_k \delta(t-kT-\tau) d\tau

  • Pg. 161 / 3rd paragraph / Shubhabrata Sengupta

    The text should read “representing the footprint
    of the beam on the face of the tube”

  • Pg. 164 / Eq. 4.54 / Yang Liu

    The exponent is missing a minus sign:

    H(\omega) = \int h(\tau) e^(-\omega \tau) d\tau

  • Pg. 164 / Eq. 4.56 / Gladimir Baranoski

    h*k on left-hand side should be h*x

  • Pg. 167 / Eq. 4.63 / Yang Liu, Dietmar Dreyer

    The “g” on the right side of the first equation should be an “h”,
    and the arguments to f should be \eta and \zeta

    g(x,y) = f*h = \int \int f(\eta, \zeta) h(x-\eta, y-\zeta) d\eta d\zeta

  • Pg. 167 / Eq. 4.64 / Yang Liu, Dietmar Dreyer

    The “g” on the right side of the first equation should be an “h”.
    Each “x” should be an “m”, each “y” should be an “n”. The arguments to
    f should be k1 and k2:

    g[m,n] = f*h = \sum_k1 \sum_k2 f[k1, k2] h[m-k1, n-k2]

    = h*f = \sum_k1 \sum_k2 h[k1, k2] f[m-k1, n-k2]

  • Pg. 179 / 4th line from bottom / Gladimir Baranoski

    “…then one more more of…” should be “…then one more of…”

  • Pg. 170 / Exercise 4.1 / Christian Laforte

    The last two parts should be labeled (f) and (g)

  • Pg. 180 / Eq 5.9 / Nicolas Tenoutasse

    The left-hand side should be ||\phi_i||^2

  • Pg. 182 / Section 5.2.4 / Darrell Plank (David Banks)

    Something went wrong during the final copyediting of this
    section, and the discussion on duals got confused.
    This covers the material from the start of the
    section to the paragraph after Equation 5.20. It will need
    a minor rewrite to fix things up. The rest of the section,
    which discusses Gram-Schmidt orthogonalization, is correct.

  • Pg. 182 / Before Eq. 5.18 / Darrell Plank

    “That is, for real functions a_i, and unit-length duals a_k:”

  • Pg. 183 / Last line / Darrell Plank

    “…by the following algorithm (with temporary non-unit vectors s_i):”

  • Pg. 184 / Eq. 5.23 / Darrell Plank

    second line should begin with s_i, not v_i.

    New third line:

    v_i = s_i /| s_i |

  • Pg. 184 / Equation 5.23 / Cass Everitt

    Denominator of last expression should be <v_k|v_k>

  • Pg. 185 / Caption for Fig 5.5 / Darrell Plank

    The caption has incorrect material.

    “(a) n=0. (b) n=1. (c) n=2. (d) n=3.”

  • Pg. 185 / Eq. 5.25 / Darell Plank (Michael Cox)

    “n-m” in exponent should be “m-n”

  • Pg. 186 / First line / Darrell Plank (Michael Cox)

    “n-m” in exponent should be “m-n”

  • Pg. 186 / Eq. 5-27 / Darrell Plank (Michael Cox)

    All four instances of “n-m” should be “m-n”

  • Pg. 186 / Last paragraph / Gladimir Baranoski

    Reference to Figure 5.3 should be Figure 5.6.

  • Pg. 186 / Equation 5.33 / Gladimir Baranoski

    \phi_m should be \phi_n

  • Pg. 195 / Caption for Fig. 5.7 / Darrell Plank

    “(b) The function |x-2| has no finite discontinuity.”

  • Pg. 198 / Equation 5.51 / Dietmar Dreyer

    In the first line of this equation, X_c(t) should be x(t)

  • Pg. 199 / 4th line from bottom / Gladimir Baranoski

    the word periodic should be aperiodic,
    reading “…our approximate aperiodic signal ~g(t)…”

  • Pg. 201 / Equation 5.59/ Gladimir Baranoski

    In the first two lines, dt should be d\omega.

  • Pg. 202 / Equation 5.61, line 4 / Thiago Ize

    Insert a k in the exponent after j, making e^{j k \omega_0 t}

  • Pg. 204 / Last paragraph / Gary Bishop

    Delete whole paragraph. Replace with “We can observe a few
    similarities and differences between Figure 5.14 and 5.15. As the
    period T of the periodic box function increases, the samples in the
    discrete transform begin to pack together more densely. After
    appropriate scaling, the discrete pulses in Figure 5.14 begin
    to look ever-more like the continuous sinc function in Figure 5.15.”

  • Pg. 214 / Eq. 5.91 / Harrison Ainsworth

    The exponent is missing a minus sign:

    H(\omega) = \int h(\tau) e^(-\omega \tau) d\tau

  • Pg. 216 / Equation 5.93, lines 2 and 3 / Ben Luna

    In lines 2 and 3, the exponent j \omega t should be -j \omega t

    In line 3, f(t) should be f(\tau)

  • Pg. 216 / Equation 5.94 / Ben Luna

    In the first 3 lines, f(t) should be f(\tau)

    In line 1, the exponent j \omega t should be -j \omega t

    In line 1, move “dt” to the right, just before “d \tau”

  • Pg. 217 / Equation 5.97 / Gladimir Baranoski

    X(\omega) should be F(\omega).

  • Pg. 218 / last line of text / Gladimir Baranoski

    Reference to Equation 5.83 should be Equation 5.82.

  • Pg. 232 / Table 5.3 / Ben Luna

    In the next-to-last line in the Spectrum column, the denominator w\pi should be 2\pi

  • Pg. 242 / Exercise 5.6 / Ben Luna

    “Equation 5.23” should be Equation 5.17, and “Equation 5.17” should be Equation 5.23

  • Pg. 246 / 3rd line from bottom / Steve Hollasch

    “short-time Fourier transform (or STFT).”

  • Pg. 255 / Equation 6.16 / Ju-Wei Huang

    The second line should read

    y_0(4t) + y_0(4t-1) + y_0(4t-2) + y_0(4t-3)

  • Pg. 254 / Equation 6.14 / Jim Blinn

    The range of the first clause should not include t=1:

    y_0(t) = 1 0<=t<1
  • Pg. 254 / Figure 6.5 / Jim Blinn

    In the leftmost figure of (a), the top and right lines of the square should be dashed

  • Pg. 263 / Second paragraph / Jim Blinn

    “…the simple function shown in Figure 6.12(a).”

    “…are shown in Figure 6.12 (b) and (c).”

  • Pg. 263 / After Equation 6.29 / Jim Blinn

    “This is shown graphically in Figure 6.12 (b) and (c).”

  • Pg. 263 / 4th paragraph / Jim Blinn

    Switch the two w terms:

    “…we will sometimes write w^{0,0}(t) as w^0(t).”

  • Pg. 264 / Figure 6.12 / Seth Teller

    Parts (c), (a), (b) should be (a), (b), (c) respectively.

  • Pg. 266 / Figure 6.13 / Mark Bolstad

    Fifth line. The right-side wave should be inverted; the numbers should be -2 and 2, and it should go down on the left and up on the right.

  • Pg. 267 / Eq. 6.32, 3rd line / Mark Bolstad

    The left-hand should read H(a,b,c,d) = …

  • Pg. 267 / Eq. 6.32, 4th line / Alade Tokuta

    The right hand side should read = (a, -a, b, -b)

  • Pg. 268 / Eq. 6.38 / Ju-Wei Huang

    The 2-by-2 matrix should be 1 row of 2 elements, each with value 1/2.

  • Pg. 270 / Equation 6.41 / Jim Blinn

    All references to c0 and c1 should be subscripted as c_0 and c_1

  • Pg. 271 / Equation 6.49 / Ju-Wei Huang

    The equation should read

    A: y[k] = (x[k] + x[k+1])/2, k is odd

    (x[k] + x[k-1])/2, k is even

  • Pg. 273 / Figure 6.16 / Alade Tokuta

    The wavelet coefficients for [b^{1,0},b^{11}] shuld be [1, -2]

  • Pg. 275 / Figure 6.17g / Russell Corfman

    The first segment should have a value of 0, and the number should be 0

  • Pg. 276 / After Eq. 6.55 / Jim Blinn

    24 should be 22 in text:

    “…has an error of only 22.”

  • Pg. 276 / Eq. 6.56 / Jim Blinn

    Delete repeated 20:

    E_2 = [(*, 34, 18, 20, 16, 22, 18, 22]

  • Pg. 276 / Eq. 6.58 / Mark Bolstad

    The pairs are in the right order, but the elements are reversed:

    {(1,4),(5,-3),(7,3),(4,-2),(8,2),(2,-1),(3,1),(6,1)}

  • Pg. 279 / Eq. 6.62 / Russell Corfman (Jim Blinn)

    The – and + signs for c_1 and c_2 are swapped.

  • Pg. 281 / 4th paragraph / Jim Blinn

    “…from Equation 6.10 for v(1) and v(2).”

  • Pg. 281 / Next-to-last paragraph / Jim Blinn

    “The corresponding eigenvectors v_1 and v_2 are”

  • Pg. 281 / Last paragraph / Jim Blinn

    “…we have found that [v(1), v(2)]=…”

  • Pg. 286 / 3rd line of text / Jim Blinn (and Kenneth Tsui)

    Second phrase should begin with \Phi(\omega):

    “…see that if \Phi(\omega)= P(\omega /2) \Phi(\omega /2), then \Phi(\omega)=P(\omega /2)[P(\omega /4) \Phi(\omega /4)], and so…”

  • Pg. 310 / Equation 7.34 / Gladimir Baranoski

    \xi_i should be \xi_{i,j}.

  • Pg. 316 / Figure 7.3 / Paul Heckbert

    The Voronoi diagram on the left isn’t exactly right. Each line should
    be perpendicular bisector of the (undrawn) line that joins the relevant
    pair of dots. The lines in the figure are slightly askew.

  • Pg. 347 / Equation 8.17 / Gladimir Baranoski

    In first line, the second g should be s:

    g[m,n] = f(x,y)s[m,n]

  • Pg. 355 / sixth line / Gladimir Baranoski

    The phrase “equivalent to multiplying g(t) with a box” should
    be “equivalent to convolving g(t) with a box”

  • Pg. 355 / Equation 8.35 / Gladimir Baranoski

    The second set of braces in the second line should be preceded by an F.

  • Pg. 362 / Figure 8.27 / Gladimir Baranoski

    In the leftmost box, the expression p/q should be p/a.

  • Pg. 380 / Figure 9.6 / Gladimir Baranoski

    Line 11 should read “return(\mu)”

  • Pg. 381 / 4th paragraph / Andrew

    “applied to graphics by Dippe and Wold [124], following the original application by Cook et. al [102].”

  • Pg. 395 / Equation 9.32 / Cuneyt Ozdas

    f[n] should be f[i]

  • Pg. 403 / Line after Equation 9.51 / Gladimir Baranoski

    and the support of the power spectral density is given by

  • Pg. 423 / Table 10.1 / Cuneyt Ozdas

    The entry under “Total Tiles” for generation 4 should be 256, not 266

  • Pg. 425 / 1st paragraph / Cuneyt Ozdas

    Delete “in an L-shaped pattern – two squares in one direction
    and one square orthogonal to it.”

  • Pg. 426 / Figure 10.18 / Cuneyt Ozdas

    In caption, replace “Regular sampling” with “Regular sampling with jitter”

  • Pg. 431 / Figure 10.24 / Stephan Schaefer

    Line 4: d_max should be initialized to 0, not 1

    Line 10: both subscripts should be k, not j

    Line 16: d_min should be d_max

  • Pg. 435 / Figure 10.27 / Andrew

    Don’t use regular grid on bottom level. Two cones from bottom level disappear.

  • Pg. 437 / Fourth line / Gladimir Baranoski

    Larger should be smaller: “Smaller values will cause the algorithm…”

  • Pg. 442/ Figure 10.32 / Gladimir Baranoski

    Line 4: 2D_{c,r} should be 2D_{c, r-1}

  • Pg. 442 / Caption Fig. 10.33 / David Banks

    delete first ‘n’ in word starting ‘bous…’:

    “… algorithm with a boustrephedonic scanning.”

  • Pg. 474 / Table 10.6 / Gladimir Baranoski

    “Mean distance” in bottom-left box should be “Ray-tree comparison”.

  • Pg. 476/ Equation 10.26 / Gladimir Baranoski

    The two letters are reversed; it should be “P <= p"
  • Pg. 476 / Last paragraph / Gladimir Baranoski

    Second line should read: “…rather than 1-d.”

  • Pg. 484 / Figure 10.68 / Gladimir Baranoski

    Figure (c) should be white to the right of the curve.

    Figure (e) should have a curve and shade in the upper-left.

  • Pg. 510 / Last paragraph / Andrew

    The first sentence of the last paragraph should read:

    To illustrate, suppose that we have a diagonal edge that
    intercepts the top and right of the pixel, at p_t and p_r, respectively.

  • Pg. 544 / Fifth paragraph / Mike McCarthy

    In first sentence, replace “indelightradiance” with “radiance”

  • Pg. 544 / Sixth paragraph / Mike McCarthy

    Two lines from the bottom of the paragraph,
    replace “indelightradiance” with “radiance”

  • Pg. 570 / Equation 11.35 / Davide Selmo

    In the expressions for S and T, \eta_1 should be \eta_2 (U and V are fine).

  • Pg. 575 / last line of the page / Andrew

    The angle in the last line should be theta:

    “… critical angle \theta_c may be found…”

  • Pg. 576 / Equation 11.50 / Andrew

    The arguments of both sines should be \theta:

    \eta_i sin \theta_c = \eta_t sin(\pi/2)

    and

    sin \theta_c = \eta_t / eta_i

  • Pg. 576 / Eq. 11.51 / Werner Jainek

    The two \eta arguments should be \theta:

    \eta_i(\lambda) sin \theta_i = \eta_t(\lambda) sin \theta_t

  • Pg. 577 / Last line / Francesc Sala

    Exchange sin and cos:

    Now we can see from the construction that |T_\perp| = sin \theta_t and |T_\par| = cos \theta_t.

  • Pg. 584 / 2nd pph, line 8 / Francesc Sala

    Change a(1-\sigma) to 1-a\sigma :

    …the probability that it will escape without collision is 1-a\sigma.

  • Pg. 592 / Reflection, line 5 / Francesc Sala

    Change a to x:

    …back into the rod as right-moving flux at x=0…

  • Pg. 594 / Eq. 12.20, line 2 / Andrew

    Second term subscript should be e:

    \Phi_s + \Phi_e + \Phi_i – \Phi_a – \Phi_o

  • Pg. 595 / Eq. 12.26, line 1 / Francesc Sala

    Second term subscript should be e:

    \Phi_s + \Phi_e + \Phi_i – \Phi_a – \Phi_o

  • Pg. 595 / Eq. 12.26, line 2 / Francesc Sala

    First function in square bracket should be e:

    = \Phi(x, R) + \Deltax[e(x, R) + \Phi(x + \Deltax, L) \sigma_s(x, L\rightarrow R)]

  • Pg. 601 / Third paragraph/ Gladimir Baranoski

    The second word of the next-to-last sentence should
    not be “radius”, but instead “area”. The final expression in the
    paragraph should not be \pi a^2, but instead \pi \alpha^2.

  • Pg. 602 / Second paragraph/ Gladimir Baranoski

    The parenthetical expression should be “b<<r”

  • Pg. 602 / Equation 12.33 / Gladimir Baranoski

    Replace all appearances of “d” with “a”.

  • Pg. 602 / Line after Equation 12.33 / Gladimir Baranoski

    Replace “where r = \sqrt(S/4\pi)” with “where a = \sqrt(S/4\pi)”

  • Pg. 615 / Third line from bottom / Alex Kulungowski

    Replace “perpendicular to the surface” with “parallel to the surface”

  • Pg. 616 / Figure 12.25 / Alex Kulungowski

    In parts (b) and (c), the labels for “n” and “c” should be swapped

  • Pg. 616 / Paragraph after Equation 12.42 / Chris Faigle

    Second sentence ending “that is, c\cdot n = 0” should read “that is, c\cdot n=1”.

  • Pg. 625 / Figure 12.34 / Atin Atul Kothari

    Put primes on incoming directions (left sides of a and b), take them off the outgoing directions (right sides of a and b)

  • Pg. 631 / Eqs. 12.70, 12.71 and 12.72 / Alex Kulungowski

    Each of the curly “R”s should be “R^3”

  • Pg. 638 / Figure 12.38 / Atin Atul Kothari

    The leftmost label on the bottom row should read r-2\omega

  • Pg. 642 / Equation 12.99 / Alex Kulungowski

    In the next to last line, in the right-hand side for $\mu(r,s)$,
    the function name “\sigma_c” should have a hat over it

  • Pg. 643 / Fourth line / Gladimir Baranoski

    Replace “flux \Gamma” with “flux \Phi”

  • Pg. 650 / First paragraph / David Banks

    Replace “subtends an arc of length dtheta” with “subtends an arc dtheta”.

    Replace “subtends an arc of length dpsi” with “subtends an arc dpsi”.

  • Pg. 650 / Table 13.1 / Chris Faigle

    In leftmost column of lines 3-6, replace each U with a Q

  • Pg. 650 / Table 13.1 / Gladimir Baranoski

    In 2nd and 3rd lines from the bottom, replace “d\Phi” with d^2\Phi”.

  • Pg. 650 / Table 13.1 / Torsten Techmann

    In lines 10, 13, and 16 the definitions should have a denominator
    of “d_\lambda” rather than “dA^\Phi”.

  • Pg. 651 / Second paragraph / Chris Faigle

    Replace “(which is parallel to the N vector)” with “(which is perpendicular to the N vector)”

  • Pg. 654 / Figure 13.2 / Chris Faigle

    The angle from the bottom disk in the leftmost image should be labeled “\theta_R”

  • Pg. 655 / Equation 13.16 / Chris Faigle

    The final superscript “s” should be a subscript.

  • Pg. 666 / Figure 13.8 / Ugo Erra

    The projection “dw_iN” should be “dw_i^N”.

  • Pg. 672 / Equation 13.58 / Ugo Erra

    The term \Omega_i should be \Omega_o:

    1 = \rho(\omega_i -> \Omega_o) = …

  • Pg. 674 / Equation 13.63 / Gladimir Baranoski

    The first term on the right-hand side should read

    f_{r,\theta}(\cos^{-1}u_r \rightarrow \cos^{-1}u)

  • Pg. 675 / Eq. 13.71 / Peter Shirley

    Place parentheses around each instance of cos \theta:


    ---------N_{l,m} P_{l,m}(cos \theta) cos (mf) / if m>0

    Y(q,f) = N_{l,0} P_{l,0}(cos \theta) /\sqrt{2} / if m=0

    ---------N_{l,m} P_{l,-m}(cos \theta) sin(-mf) / if m\lessthan 0

  • Pg. 677 / Figure 13.10 / Bob Lewis, Jonathan Blocksom, Francois Sillion

    These plots are incomplete; they’re missing some lobes.
    For a more complete picture of these functions in a
    computer graphics book, see
    Figure 7.13 (page 173) in “Radiosity & Global Illumination”
    by Francois Sillion & Claude Puech (reference [409]) or Figure 10.34
    (page 314) in “Radiosity and Realistic Image Synthesis” by
    Michael Cohen and John Wallace (reference [99]).

  • Pg. 684 / Last line/ David Banks

    Replace “1s electrons?” with “electrons with the same quantum numbers?”

  • Pg. 685 / End of 2nd paragraph / David Banks

    Replace “is written 1s.” with “is written 1s (the superscript if
    of omitted if its value is 1; a missing superscript is always taken
    to be 1).”

  • Pg. 693 / 1st paragraph / Andrew

    “each term as a logarithm, in terms of f_1 and f_2, the number of electrons in each level:”

  • Pg. 694 / 5th paragraph / Andrew

    “…experiments, we find that L corresponds to…”

  • Pg. 699 / Equation 14.20 / David Banks

    In the second line, replace the + sign by a – minus sign.

  • Pg. 722 / 3rd line from bottom / Atin Atul Kothari

    eliminate bogus word singleindeRGBRGB:

    …description to a single RGB color…

  • Pg. 726 / Equation 15.3 / Caroline Dahllof

    The first S_i should be -S_i, giving R_i = -S_i + 2(S_i . N)N

  • Pg. 728 / 1st paragraph in section 15.2.1 / Mike McCarthy

    In third line, insert word “be” after “model for a material that may”.

  • Pg. 730 / 1st Paragraph / David Banks

    “topology” should be “topography”

  • Pg. 735 / Figure 15.8 / David Salesin

    Expanded scale on right side of graph is not marked.

  • Pg. 736 / Figure 15.9 / David Salesin

    Expanded scale on right side of graph is not marked.

  • Pg. 736 / 1st paragraph / Steve Worley

    The first word on the page should be absorption, not reflection.

  • Pg. 736 / 2nd paragraph / Steve Worley

    F_r is the same as our earlier F, and F_t=(1.0-F_r).

  • Pg. 737 / Equation 15.13 / Chung-Fa Chang

    The + sign in the denominator within the braces should be a – sign.

  • Pg. 749 / Paragraph after Equation 15.30 / Gladimir Baranoski

    Replace “adjustment factor d_m” with “adjustment factor d_a”

  • Pg. 749 / Equation 15.32 / Gladimir Baranoski

    Should read “b=F(\theta)G(\theta)G(\delta)”

  • Pg. 750 / Equation 15.35 / Gladimir Baranoski

    Left-hand side should be s_c

  • Pg. 751 / Equation 15.36 / Gladimir Baranoski

    The 2 in the denominator of the last term should be a 4

  • Pg. 751 / 2nd paragraph after Equation 15.36 / Gladimir Baranoski

    Replace “as long as a < 0.2" with "as long as \sigma < 0.2"
  • Pg. 751 / Equation 15.37 / Gladimir Baranoski

    The 2 in the denominator of the last term should be a 4

  • Pg. 752 / First paragraph / Gladimir Baranoski

    Replace “and \alpha_x and \alpha_y represent” with “and \sigma_x and \sigma_y”

  • Pg. 752 / Third paragraph in section 15.6.3 / Mike McCarthy

    The reference to [187] should be to [186b]. (See errata for pg. B-15)

  • Pg. 762 / Equation 15.43 / Andrew

    Replace this equation with
    P_{S}(r,g_1,g_2,a) = r\frac{1-{g_1}^2}{(1-g_1 a)^2} + (1-r)\frac{1-{g_2}^2}{(1-g_2 a)^2}

  • Pg. 778 / Equation 15.87 / Stephen Diverdi

    In the argument to coth, the \sigma_s should be \sigma_a

  • Pg. 778 / Equation 15.88 / Stephen Diverdi

    In line 1, the factor \sigma_a should be deleted from the denominator

    In line 1, the function coth should be cosh

    In line 2, \sigma_s should be \sigma_a

  • Pg. 780 / Second Paragraph / Mike McCarthy

    The sentence should end, “a surface texture can be
    evaluated only at points on surfaces.”

  • Pg. 792 / Second paragraph / Gladimir Baranoski

    Replace “inderadianceUnit” with “Unit”

  • Pg. 794 / Table 16.1 / Chris Faigle

    The upper limit of the three integrals in the right-hand
    column should be “t” rather than “s”

  • Pg. 811/ Equation 16.58 / Gladimir Baranoski

    In last line, m_2 should be m_p

  • Pg. 812 / Equation 16.61 / Gladimir Baranoski

    Replace ds in left-hand side with dt

  • Pg. 826 / Second paragraph / Chris Faigle

    Replace “at the p points u_i.” with “at the p points t_i.”

  • Pg. 830 / Equations 16.97 – 16.102 / Chris Faigle

    Replace each “a<=s<=b" under the max with "a<=t<=b" in these equations (there are six replacements)
  • Pg. 831 / Equation 16.103 / Chris Faigle

    The “ds” on the right-hand side should be “dt”

    The entire right-hand side should be under a square-root sign
    (or a pair of brackets with the whole expression raised to 1/2).

  • Pg. 834/ Equation 16.113 / Gladimir Baranoski

    Left-hand side should read <g|h_2>

  • Pg. 836/ Paragraph after Equation 16.123 / Gladimir Baranoski

    Should read “so x_n \rightarrow x as n \rightarrow \infty [343].”

  • Pg. 840/ Second paragraph / Gladimir Baranoski

    Parenthetical phrase should read “(proportionally to 1/\sqrt(n)
    for n samples.”

  • Pg. 847/ Last paragraph / Gladimir Baranoski

    Some of the weights are mis-numbered. In the sentence starting
    with “Suppose that we have…”, it should end with “w_4 = (N \rho)(\rho^2)
    = N\rho^3.” The next sentence should end with “w_5 = N^2\rho^4.” The next
    sentence should end with “w_6 = w_5.”

  • Pg. 848/ Figure 16.17 / Gladimir Baranoski

    The bottom label should change from “w_5 = N^2\rho^5” to “w_5 = N^2\rho^4.”

  • Pg. 856/ Equation 16.162 / Gladimir Baranoski

    The right-hand side term S_x should be S_k.

  • Pg. 857/ Paragraph after Equation 16.164 / Gladimir Baranoski

    Replace “by virtue of being in t, times the remaining”
    with “by virtue of being in t, plus the remaining”

  • Pg. 866/ Second paragraph / Gladimir Baranoski

    Replace “K_0(t,q)” with “k_0(t,q)”

  • Pg. 868 / 6th line from bottom / Atin Atul Kothari

    fix dsicussion to discussion:

    …is Golberg’s discussion in [162].

  • Pg. 869/ Exercise 16.2 / Gladimir Baranoski

    This exercise is garbled; ignore it.

  • Pg. 869/ Equation 16.203 / Gladimir Baranoski

    Replace “cos(n cos^{-1}s)” with “cos(n cos^{-1}t)”

  • Pg. 869/ Equation 16.204 / Gladimir Baranoski

    Replace the s in lines 1 and 3 with t

  • Pg. 880 / Eq. 17.16 / Atin Atul Kothari

    First argument to L^e after equal sign should be r:

    L(r, w^0) = L^e(r, w^0) + …

  • Pg. 890 / Eq. 18.1 / Atin Atul Kothari

    First argument to L^e after equal sign should be r:

    L(r, w^0) = L^e(r, w^0) + …

  • Pg. 890/ Paragraph before Equation 18.2 / Gladimir Baranoski

    Replace “\nu(r,s)” with “\nu(r,\vec(\omega))”

  • Pg. 891 / Eq. 18.4 / Atin Atul Kothari

    First argument to L^e after equal sign should be r, in all three references:

    L(r, w^0) = L^e(r, w^0) + …

  • Pg. 892 / 5th line from top / Atin Atul Kothari

    eliminate bogus word approximaindeione:

    An approximate solution L can be…

  • Pg. 895 (Color section) / Figure 19.52 / Gustavo A. Patow

    The figures are shown in the wrong order. To match
    the captions, rearrange the images in the order (b,c,f,d,e,a).

  • Pg. 896 / Equation 18.29 / Janne Koponen

    The F term in the second column of the second row should
    have the subscript 2,2.

  • Pg. 898 / Figure 18.3 caption / Kim Dong Ho

    (c) Wall B radiating, A and C reflecting.

  • Pg. 902 / 1st line, Eq. 18.40 / Kim Dong Ho

    Lose K_{i,i} at start of first line

  • Pg. 903 / Figure 18.5 / Chris Faigle

    Lines 1 and 6 should read “for i <- 1 to n".
  • Pg. 904 / Figure 18.6 / Chris Faigle

    Lines 1 and 5 should read “for i <- 1 to n".
  • Pg. 905/ Equation 18.43 / Gladimir Baranoski

    Replace + sign in lines 3 and 4 with – sign.

  • Pg. 906 / Figure 18.7 / Chris Faigle

    Line 1: The 0 should be a 1

    Line 9: The 0 should be a 1

    Line 10: Replace K_j,i in the numerator of the rightmost
    term with K_k,i

  • Pg. 912 / Figure 18.11 / Andrew

    The arrow rising to the top face should pass behind the
    near edge of that face, not in front of it.

  • Pg. 913 / Equation 18.55 / Chris Faigle

    Delete the \Delta in front of the \rho in the numerator

  • Pg. 914/ Equation 18.57 / Gladimir Baranoski

    Replace right-hand term “B_k A_k” with “\Delta B_k A_k”

  • Pg. 917/ Paragraph after Equation 18.59 / Gladimir Baranoski
    Replace “Now if A_i” with “Now if dA_i”

  • Pg. 922 / Figure 18.18 / Atin Atul Kothari

    Label q_1 should be q_i

  • Pg. 943 / Figure 18.35 / Janne Koponen

    In the lower half of part (d), the entry below and to the
    right of the root node “A” should be “A_3”

  • Pg. 946 / Figure 18.37 / Dani Lischinski

    Label A just below A_1 in part (b) should be A_2.

  • Pg. 948 / 5th paragraph / Dani Lischinski

    Replace “number of input polygons” with “number of elements”

  • Pg. 948/ 6th paragraph / Gladimir Baranoski
    Replace “C-level patches are descendents” with “C-level patches are parents”

  • Pg. 953 / Next-to-last line / Dani Lischinski

    Subscript on Y_q should be g

  • Pg. 954 / Figure 18.44 / Dani Lischinski

    “struct Link }” should be “struct Link {”

  • Pg. 955 / Figure 18.46 / Dani Lischinski

    “InitBg” should be “InitBs”

  • Pg. 958 / Figure 18.51 / Dani Lischinski and Stephan Schaefer

    7th line should read

    “PushPullRad(r, 0)”

  • Pg. 964 / Figure 18.56 / Dani Lischinski

    “InitBg” should be “InitBs”

  • Pg. 966 / next-to-last line / Dani Lischinski

    First + should be =

    “…form factor matrix (tilde-K) = K + DK. Then…”

  • Pg. 967 / end of 1st paragraph / Dani Lischinski

    Final term K(tilde-B) should be in bold.

  • Pg. 967 / just before Eq. 18.88 / Dani Lischinski

    Reference [413] should be [414]

  • Pg. 969/ Equation 18.94 / Gladimir Baranoski

    The term “i\in I” should appear below the sigma in both lines.

  • Pg. 969/ Equation 18.95 / Gladimir Baranoski

    The first term in the right-hand side of the first line
    should change from \frac{1}{A_i} to \frac{1}{A_I}.

  • Pg. 970 / Figure 18.62 / Dani Lischinski

    “InitBg” should be “InitBs”

  • Pg. 970 / Figure 18.62 / Dani Lischinski

    Line 4, Gamma_s should be Y_s

  • Pg. 970 / Figure 18.62 / Dani Lischinski

    “RefineLink(L)” should be “RefineImpLink(L)”

  • Pg. 970 / Last paragraph / Dani Lischinski

    “SolveImpRad” should be “SolveImpHR”

  • Pg. 971 / 2nd paragraph / Dani Lischinski

    “SolveImpRad” should be “SolveImpHR”

  • Pg. 972 / Figure 18.64 / Dani Lischinski

    5th line, L.Y_g should be L.q.Y_s

  • Pg. 972 / Figure 18.65 / Dani Lischinski

    Insert a line before the first endfor:

    RecursivelySetYto0(r)

  • Pg. 973 / Figure 18.66 / Dani Lischinski

    Fourth cluster of lines:

    Each instance of L.p.Y should be L.p.Y_g

    the term n.Y should be n.Y_s

  • Pg. 973/ Equation 18.66 / Gladimir Baranoski

    Remove endwhile in next-to-last line

  • Pg. 977/ Equation 18.99 / Gladimir Baranoski

    The term \Phi_i^r should be \Phi_i^k

  • Pg. 990 / Equation 19.1 / Paul Lalonde

    The argument s in L^e(s, w^0) should be an r.

  • Pg. 990 / Equation 19.3 / Paul Lalonde

    On both lines, the argument s in L^e(s, w^0) should be an r.

  • Pg. 997 / Figure 19.8 / Andrew

    There should be two lines on the rightmost (gray-shaded) partial ellipse, showing the edges of the intervening partial ellipses (like the figure on the hemisphere). On the bottom corner should be shade (as on the hemisphere).

  • Pg. 1017 / Figure 19.27 / Andrew

    Remove dot at top of line coming out of point F

  • Pg. 1021 / 4th paragraph / Andrew

    Add references:

    “Distribution ray tracing [101] and path tracing [234] are the most…”

  • Pg. 1024 / Eq. 19.28 / Seth Teller & class

    The expression for d should be the discriminant, not its square root:

    s1 = (-b+\sqrt d)/2a

    s2 = (-b-\sqrt d)/2a

    where



    d = b^2- 4ac

  • Pg. 1031 / Equation 19.29 / Gladimir Baranoski

    Replace all three occurances of r with s.

  • Pg. 1031 / Equation 19.30 / Gladimir Baranoski

    Replace all four occurances of r with s.

  • Pg. 1048 / Figure 19.50 / Gladimir Baranoski

    Remove diffuse patch in the arc starting at the light source.

  • Pg. 1048 / Figure 19.50 / Andrew

    Adapted from Chen, Rushmeier, Miller, and Turnder, “A progressive multi-pass method for global illumination” (Proc. Siggraph 91) , Figure 1, pg. 166

  • Pg. 1049 / Figure 19.51 / Andrew

    Adapted from Chen, Rushmeier, Miller, and Turnder, “A progressive multi-pass method for global illumination” (Proc. Siggraph 91) , Figure 1, pg. 166

  • Pg. 1087 / Equation A.3 / Chris Faigle

    In the third line, move “a<=t<=b" under the "max"
  • Pg. 1090 / First paragraph under Eq. A.14 / Janne Koponen

    “finite” should be “countable”

  • Pg. 1124 / Equation FF4 / Nail Gatenby

    There are two terms that take the inverse-tangent (marked tan^{-1}) of fractions. Both
    of these should have a square root in the denominator. Thus these terms
    should be tan^{-1}(X/sqrt(1+Y^2))
    and tan^{-1}(Y/sqrt(1+X^2)).

  • Pg. 1180 / Table G.10 / Davide Gadia

    The Y value for the Neutral 3.5 patch should be 9.00

  • B-15 / [186b] / Andrew

    Missing citation: [186b] Pat Hanrahan and Jim Lawson, “A Language for Shading and Lighting Calculations”,
    Computer Graphics (Proc. Siggraph ’90), 24(4), 289-298, August 1990.

  • B-28 / [373] / Andrew

    “Hanen” should be “Hanan”

  • B-28 / [374] / Andrew

    “Hanen” should be “Hanan”

  • B-37 / Ref. 499 / Anil Hirani

    Remove “and H. Webb”

  • I-18 / G index / Chris Faigle

    Under “Galerkin method” and subhead “classical radiosity and”,
    the indexed pages should be 892-893

End of Errata

Leave a Reply

Leave a Reply