Advanced RenderMan: Creating CGI for Motion Pictures

Errata for the First and Second Printing (Summer 2000)

Chapter 7

  1. p. 172, the second printf statement used a / where there should be a \. It should say:
    printf ("%f\n");

  2. p. 177, the declaration for setcomp should read:
    void setcomp (output color c; float i, x)

Chapter 8

  1. p. 200, listing 8.4: in spherical_projection, the assignment to tt should read:
    tt = 1 - acos(zcomp(V))/PI;

Chapter 9

  1. p. 207, in the middle of the page,
    Ci = MaterialPlastic (Nf, V, Cs,...
    There is an extra parameter. The V parameter should be deleted.

  2. p. 220, Listing 9.9, the fresnel call is missing a parameter. It should read:
     fresnel (IN, Nf, 1/ior, fkr, fkt, R, T);

  3. p. 234, "As before, illuminance implicitly sets..." should read "As before, illuminate implicitly sets...".

Chapter 12

  1. p. 290, the very first line of text (after the program listing) refers to pref.h file. That should say pshad.h, which is in program Listing 12.1.

  2. p. 292, bottom of page: ds and dt should be dss and dtt, respectively.

  3. p. 315, the pseudocode at the bottom has a mistake. The two lines that say: "Cvol += (1-Ovol) + stepsize..." and "Ovol += (1-Ovol) + stepsize..." should read:
     Cvol += (1-Ovol) * stepsize*(scattered light);
     Ovol += (1-Ovol) * stepsize*(local density);

Chapter 14

  1. p. 394, the last equation has "2d" where it should read "2/d". Specifically, it should say:
    = ab((bPx)^(2/d) + (aPy)^(2/d))^(-d/2)

Chapter 15

  1. p. 414, the gcloud.sl shader has a typo. Where it says "Oi = opac * Oi", it should really be:
      Oi = opac * Os;

  2. p. 429, the hypertexture.sl shader has two typos. The line that says
        while (d <= end && (comp(Oi,0)<0.1 || ...
    
    should really say
        while (d <= end && (comp(Oi,0)<1 || comp(Oi,1)<1 || comp(Oi,2)<1)) {
    

    Also the line that says

        lighttau = lightdensity * (li + last_li)/2;
    
    should be deleted. The variable is assigned correctly on the previous line.


Errata for the First Printing (Dec 1999) [fixed in 2nd printing]

Chapter 2

  1. p. 49, the Figure 2.14 caption reads, "a slice of tghe 3D CIEXYZ color space." That should read, "a slice of the 3D CIE XYZ color space."

Chapter 3

  1. p. 67, section 3.2.4, states that in the camera coordinate system, "the positive z-axis extends in front of the camera, the positive x-axis is to the left..." This should say that in camera coordinates, the positive x-axis is to the right.

    Similarly, on p. 68, when describing "screen" space, it should also say "...x is right and y is up."

  2. p. 85, typo: "flexibile" should read "flexible".

  3. p. 87, section 3.7.2, "The names of a shader that are provided..." should read "The names of shaders that are provided..."

Chapter 4

  1. p. 99, the explanation of the Torus primitive implies that majorradius is the outside radius of the torus, while minorradius defines the radius of the hole. This is not true at all! The whole paragraph should be replaced by:

    Torus creates the quartic "donut" surface (so it isn't a quadric, but it is defined with two angles, so we let it go). The cross section of a torus is a circle of radius minorradius on the x-z plane, and the angles phimin and phimax define the arc of that circle. It will be swept around the z-axis at a distance of majorradius to create the torus. Thus, majorradius+minorradius defines the outside radius of the torus (its maximum size), while majorradius-minorradius defines the radius of the hole.

Chapter 5

  1. p. 123, the description of Curves, says, "...each curve is a cubic curve that responds to the v basis function and is step defined by the Basis call." I don't know where the "is" came from. That sentence should read: "...responds to the v basis function and step defined by..."

Chapter 7

  1. p. 177, the descriptions of min, max, and clamp should have their return values listed as type rather than float. In other words, the function declarations should read:
    type min (type a, b, ...)
    type max (type a, b, ...)
    type clamp (type x, minval, maxval)

  2. p. 180, the description of translate, rotate, and scale says that these functions take only uniform arguments. This is untrue. Please remove the two occurrences of 'uniform' from the line containing the declaration of the "scale" function. In other words, that line should read:
    matrix scale (matrix m; point t)
    Also, in the following paragraph, please delete the sentence that reads, "In each case, all arguments to these functions must be uniform."

Chapter 8

  1. p. 195, item 3 (about 3/4 down the page) says "... is a scaline factor..." It should say scaling factor.

  2. p. 202, Listing 8.5: the code calls a function TextureProjectTo2D. This should be ProjectTo2D, which is the name of the function as it's described on p. 99, in Listing 8.4, and in the online shader code.

Chapter 9

  1. p. 220, Listing 9.9 calls the fresnel() function and is missing an argument! The function call should read:
    fresnel (IN, Nf, 1/ior, fkr, fkt, R, T);

Chapter 11

  1. p. 269, the equation defining convolution is incorrect. The integrand should read f(delta)k(x-delta). In other words, there's an x where a delta should be.

  2. p. 273, the equation has a typo, the first integral is f(x)fx, when of course it should read: f(x)dx

Bibliography

  1. p. 516, the citation for Gershbein, Schroder, and Hanrahan should be for the Proceedings of SIGGRAPH '94. (It cites a tech report of the same year, but there was a SIGGRAPH paper with the same title.)

Index

  1. p. 533, "Oren/Nayer" should be "Oren/Nayar".

Color Plates

  1. p. 4 (color), the caption for Plate 9.2 reads "MarterialRoughMetal", but should be "MaterialRoughMetal".

Return to the Advanced RenderMan book home page.


Last change: $Date: 2002/05/04 17:45:43 $ / lg AT larrygritz DOT com