**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. 132**Page 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