## Known errors in Fundamentals of Computer Graphics, Third Edition

• Notes to Ch. 1, p. 11: “Graphics Interface” is misspelled. (thanks: Vicente Batista)
• Section 2.3.3, p. 20: The triangle area formula at the bottom of the page should have the factor (1/4) in front of it, not (1/2). (thanks: Araz Yusubov)
• Figure 2.26, p. 32: The caption should read “The partial derivative of a function f with respect to x must hold….” (thanks: Mario Galic)
• Section 2.5.2, p. 32: The sentence after the equation defining the partial derivative should read “…partial derivatives with respect to x and y&hellip.”
• Exercise 2.6, p. 50: The variable y should be x. (thanks: Jennifer Gossels)
• Section 5.4.1, p. 106: In the second equation from the bottom of the page, which gives a formula for V in terms of the eigenvalue decomposition of M, “M” should be replaced by “A.” (thanks: Carlo Zambon)
• Section 6.1.3, p. 114: On the last line of text on this page (before the equation) the expression for r is missing a square root. (thanks: Carlo Zambon) Section 6.3, p. 132Page 132, at the sentence before the second equation: (t_x, t_y) should be (x_t, y_t). (thanks Beatriz Andrade)
• Section 7.3, p. 152: In the last equation of the page, beginnning with “P[x y z 1]^T” the intermediate result should be multiplied by n (so that its last component is z). (thanks: Wolfgang Hürst & Tim de Jager)
• Section 11.3.1, p. 254: The right hand side of Equation 11.4 should read simply “1/h.” The sentence just before this equation that starts with “However” is false as written; it would be true to say “However, if we interpolate linearly betwen 1/h_r and 1/h_R in screen space, the result is 1/h.” This PDF file contains a rewrite of this section that may be clearer. (thanks: Xiuwen Liu)
• Section 12.1.4, p. 271: The pseudocode for `TrianglesOfVertex` is incorrect; the line in the `do` loop should read: {t, i} = t.nbr[(i + 1) mod 3]; Also, in the termination condition “`v.t`” should be “`v.e.t`”. (thanks: Wei-Chun Yuan) Further, the first iteration doesn't work. {t,i} = v.e; do { {t,i} = t.nbr[i]; i = (i+1) mod 3 } while (t != v.e.t); } (thanks Thiago M. Paixão)
• Section 13.1, p. 305: The solution to the differential equation that appears 4 lines from the bottom of the page should read simply I = k exp(-Cx). (thanks: Michael Reed)
• Section 13.1, p. 306: The displayed equation for I(s) contains an extra minus sign; it should read I(s) = I(0) exp(ln(a)s). (thanks: Michael Reed)
• Section 20.1.2, p. 518: In the last paragraph of this section, the two instances of “power” should be “energy.” (thanks: Sangha Im)
• Section 20.1.3, p. 520: The last expression should read Δq/(ΔtΔλ) for consistency with the following sections. It's unclear whether ΔQ is energy or spectral energy, according to the preceding paragraphs. (thanks: Stephan Rehfeld)
• Section 20.1.6, p. 525: On the fifth line of text, “radiance exitance” should be “radiant exitance.” (thanks: Michael Reed)
• Section 20.1.6, p. 526: In the second equation on this page, k should be C. (thanks: Michael Reed)

Steve Marschner
Peter Shirley