Teaching Texture Mapping Visually - Home | ACM … 6: Two-dimensional mappings use pre-existing...

10
Teaching Texture Mapping Visually Rosalee Wolfe DePaul University [email protected] Visually demonstrating the behavior of texture mapping is beneficial to both computer science and art students. For computer science students it can serve as prelude to delving into the mathematical underpinnings of the topic, while in an art class it can be the main vehicle of explanation for students learning to use a rendering package as a medium of creative expression. The SIGGRAPH 97 Education Slide set covers not only the techniques of two- and three-dimensional texture mapping, but procedural textures, bump mapping, and environment mapping as well. In addition it discusses aliasing in texture mapping, and what can be done to counteract it. The following is a reprint of an article that appeared in the November 1997 issue of Computer Grapics and contains thumbnails and accompanying narrative for the slide set. To order the full color 35mm slide set, call ACM Member Services at 800 342 6626 in the U.S. and Canada, and +1 212 626 0500 for the greater New York area and all other countries. The ACM order number of the education slide set is 434975 (ISBN 0 89791 956-4) and the price is $35.00 for ACM/SIGGRAPH members and $45 for non- members. 1. Mapping techniques add realism and interest to computer graphics images. Texture mapping applies a pattern of color to an object. Bump mapping alters the surface of an object so that it appears rough, dented or pitted. In this example, the umbrella, background, beachball and beach blanket have texture maps. The sand has been bump mapped. These and other mapping techniques are the subject of this slide set. 2: When creating image detail, it is cheaper to employ mapping techniques that it is to use myriads of tiny polygons. The image on the right portrays a brick wall, a lawn and the sky. In actuality the wall was modeled as a rectangular solid, and the lawn and the sky were created from rectangles. The entire image contains eight polygons.Imagine the number of polygon it would require to model the blades of grass in the lawn! Texture mapping creates the appearance of grass without the cost of rendering thousands of polygons. 3: Knowing the difference between world coordinates and object coordinates is important when using mapping techniques. In object coordinates the origin and coordinate axes remain fixed relative to an object no matter how the object’s position and orientation change. Most mapping techniques use object coordinates. Normally, if a teapot’s spout is painted yellow, the spout should remain yellow as the teapot flies and tumbles through space. When using world coordinates, the pattern shifts on the object as the object moves through space. 4: Depending on the mapping situation, we may need to bound an object with a box, a cylinder, or a sphere. It’s often useful to transform the bounding geometry so its coordinates range between zero and one. Transformed bounding boxes have coordinates that range from (0,0,0) to (1,1,1). For a bounding cylinder, we set the circumference to one and the height to one. For a sphere, we scale the latitude and the longitude so that they both range between zero and one. 5: Texture mapping can be divided into two- dimensional and three- dimensional techniques. Two-dimensional techniques place a two- dimensional (flat) image onto an object using methods similar to pasting wallpaper onto an object. Three-dimensional techniques are analogous to carving the object from a block of marble.

Transcript of Teaching Texture Mapping Visually - Home | ACM … 6: Two-dimensional mappings use pre-existing...

Page 1: Teaching Texture Mapping Visually - Home | ACM … 6: Two-dimensional mappings use pre-existing images. This slide shows some images that might be used for texture mapping. The images

Teaching Texture MappingVisuallyRosalee WolfeDePaul [email protected]

Visually demonstrating the behavior of texturemapping is beneficial to both computer science andart students. For computer science students it canserve as prelude to delving into the mathematicalunderpinnings of the topic, while in an art class it canbe the main vehicle of explanation for studentslearning to use a rendering package as a medium ofcreative expression. The SIGGRAPH 97 EducationSlide set covers not only the techniques of two- andthree-dimensional texture mapping, but proceduraltextures, bump mapping, and environment mappingas well. In addition it discusses aliasing in texturemapping, and what can be done to counteract it.

The following is a reprint of an article that appearedin the November 1997 issue of Computer Grapics andcontains thumbnails and accompanying narrative forthe slide set. To order the full color 35mm slide set,call ACM Member Services at 800 342 6626 in the U.S.and Canada, and +1 212 626 0500 for the greater NewYork area and all other countries. The ACM ordernumber of the education slide set is 434975 (ISBN 089791 956-4) and the price is $35.00 forACM/SIGGRAPH members and $45 for non-members.

1. Mapping techniquesadd realism and interestto computer graphicsimages. Texture mappingapplies a pattern of colorto an object. Bumpmapping alters the

surface of an object so that it appears rough, dentedor pitted. In this example, the umbrella, background,beachball and beach blanket have texture maps. Thesand has been bump mapped. These and othermapping techniques are the subject of this slide set.

2: When creating imagedetail, it is cheaper toemploy mappingtechniques that it is to usemyriads of tiny polygons.The image on the rightportrays a brick wall, a

lawn and the sky. In actuality the wall was modeledas a rectangular solid, and the lawn and the sky werecreated from rectangles. The entire image containseight polygons.Imagine the number of polygon itwould require to model the blades of grass in thelawn! Texture mapping creates the appearance ofgrass without the cost of rendering thousands ofpolygons.

3: Knowing the differencebetween world coordinatesand object coordinates isimportant when usingmapping techniques. Inobject coordinates theorigin and coordinate axes

remain fixed relative to an object no matter how theobject’s position and orientation change. Mostmapping techniques use object coordinates.Normally, if a teapot’s spout is painted yellow, thespout should remain yellow as the teapot flies andtumbles through space. When using worldcoordinates, the pattern shifts on the object as theobject moves through space.

4: Depending on themapping situation, we mayneed to bound an objectwith a box, a cylinder, or asphere. It’s often useful totransform the boundinggeometry so its coordinates

range between zero and one. Transformed boundingboxes have coordinates that range from (0,0,0) to(1,1,1). For a bounding cylinder, we set thecircumference to one and the height to one. For asphere, we scale the latitude and the longitude so thatthey both range between zero and one.

5: Texture mapping can bedivided into two-dimensional and three-dimensional techniques.Two-dimensionaltechniques place a two-dimensional (flat) image

onto an object using methods similar to pastingwallpaper onto an object. Three-dimensionaltechniques are analogous to carving the object from ablock of marble.

Page 2: Teaching Texture Mapping Visually - Home | ACM … 6: Two-dimensional mappings use pre-existing images. This slide shows some images that might be used for texture mapping. The images

2

6: Two-dimensionalmappings use pre-existing images. Thisslide shows some imagesthat might be used fortexture mapping. Theimages on the left are

either scanned photographs or images created in apaint or drawing package. POVRay, a raytracer,created the images on the right.

7: In two-dimensionaltexture mapping, wehave to decide how topaste the image on to anobject. In other words,for each pixel in anobject, we encounter the

question, “Where do I have to look in the texture mapto find the color?” To answer this question, weconsider two things: map shape and map entity.

8: We’ll discuss mapshapes first. For a mapshape that’s planar, wetake an (x,y,z) value fromthe object and throwaway (project) one of thecomponents, which

leaves us with a two-dimensional (planar) coordinate.We use the planar coordinate to look up the color inthe texture map.

9: This slide showsseveral textured-mappedobjects that have a planarmap shape. None of theobjects have been rotated.In this case, thecomponent that was

thrown away was the z-coordinate. You candetermine which component was projected bylooking for color changes in coordinate directions.When moving parallel to the x-axis, an object’s colorchanges. When moving up and down along the y-axis, the object’s color also changes. However,movement along the z-axis does not produce a changein color. This is how you can tell that the z-component was eliminated.

10: In the left image, anobjects color changeswhen there’s a change iny, or when there’s achange in z, but the colorremains constant when xchanges. Which

component was projected? In the right image, whichcomponent was projected?

11: A second shape usedin texture mapping is acylinder. An (x,y,z) valueis converted to cylindricalcoordinates of (r, theta,height). For texturemapping, we are only

interested in theta and the height. To find the colorin two-dimensional texture map, theta is convertedinto an x-coordinate and height is converted into a y-coordinate. This wraps the two-dimensional texturemap around the object.

12: The texture-mappedobjects in this image havea cylindrical map shape,and the cylinder’s axis isparallel to the z-axis. Atthe smallest z-position oneach object, note that the

squares of the texture pattern become squeezed into“pie slices”. This phenomenon occurs at the greatest zposition as well. When the cylinder’s axis is parallelto the z-axis, you’ll see “pie slices” radiating out alongthe x- and y- axes.

13:On the left squares ofthe texture map aresqueezed into pie slicesthat radiate out along thex- and z-axes. Whichcoordinate axis is parallelto the cylinder’s axis?

14: When using a sphereas the map shape, the(x,y,z) value of a point isconverted into sphericalcoordinates. Forpurposes of texturemapping, we keep just

the latitude and the longitude information. To findthe color in the texture map, the latitude is convertedinto an x-coordinate and the longitude is convertedinto a y-coordinate.

Page 3: Teaching Texture Mapping Visually - Home | ACM … 6: Two-dimensional mappings use pre-existing images. This slide shows some images that might be used for texture mapping. The images

3

15: The objects have amap shape of a sphere,and the poles of thesphere are parallel to they-axis. At the object’s“North Pole” and “SouthPole”, the squares of the

texture map become squeezed into pie-wedge shapes.Compare this slide to slide 12 which has a map shapeof a cylinder. Both map shapes have the pie-wedgeshapes at the poles, but there is a subtle difference atthe object’s “equator”. The spherical mappingstretches the squares in the texture map near theequator, and squeezes the squares as the longitudereaches a pole.

16: These objects have aspherical map shape.

17: Using a box as themap shape is similar toplanar mapping. Insteadof using one texture map,box mapping uses six --one each for the left,right, front, back, top and

bottom sides of the object. To texture map the frontand back sides, we eliminate the z-component of anobject’s point and use the remaining x- and y-components to locate the color in the correspondingtexture maps.

18: Here are six texturesthat we will use in ournext example.

19: The objects in slidehave a box as the mapshape.

20: Here’s another sixtextures. This scene wasmodeled by Steve vander Burg.

21: Here’s the result.

22: Remember that we choose a map shape and a mapentity when texture mapping. When discussing mapshape, we talked about taking an (x,y,z) value fromthe object and converting in various ways, but wedidn’t mention what that value was. The map entitydetermines what we use as the (x,y,z) value.Commonly-used map entities are 1) a point on theobject relative to the object’s bounding box, 2) thesurface normal at the point being rendered, 3) a vectorrunning from the object’s centroid through the point,and 4) the reflection vector at the current point.Remember that the reflection vector depends not onlyon the position of the point and its normal, but on theposition of the viewer.

23: This next sequence ofslides shows theinteraction of map shapeand map parameter. Themap shape is the samefor all the teapots on thisslide. What is it?

24: Some combinations ofmap shape and mapparameter produce moreuseful results than others.For a cylindrical mapshape, which mapparameters seem to

produce the best results?

Page 4: Teaching Texture Mapping Visually - Home | ACM … 6: Two-dimensional mappings use pre-existing images. This slide shows some images that might be used for texture mapping. The images

4

25: Which mapparameters look goodwith a spherical mapshape? Compare mapparameters best forcylindrical map shapewith those best for a

spherical map shape. Are there any similarities?

26: Can you guess the map shape?

27: When rendering aparametric patch, we candispense with map shapeand map entity bytreating the u- and v-parameters of the surfaceas if they were

normalized device coordinates (Catmull, 1974).Multiplying u and v by the resolution (in pixels)yields the device coordinates of the desired pixel inthe texture map.

28: Here is the samepatch with its texturemap.

29: The model for thisteapot has 32 parametricpatches, each of whichsports a copy of thetexture. This slide showsthe use of the u,vparameters to select the

coordinates of desired color in the texture image.

30: This technique can beapplied to objects thataren’t parametricallydefined by assigning u,vvalues to each vertex. Aslong as the chosen valuesrange between zero and

one, it’s possible to use the same texture mappingapproach.

31: By using a nonlinearfunction, it’s possible topull or distort the texturemaps over the surface ofpolygons.

32: We can layer texturesone on top of another byusing a technique similarto the one that allowstelevision viewers to seea forecaster standing infront of a weather map

when in actuality the forecaster is standing in front ofa blue wall in a studio. The colors of the backgroundweather map is substituted for the blue color. (Haveyou noticed that they never wear blue?) We can dothe same thing. We want to place the word “hello”on top of a map of the world. The black backgroundof the “hello” image will be treated as transparent. Tocreate a pixel in the final image, we find the colors inthe corresponding pixel locations in the two inputimages and combine the two.

33: Here is an example oflayered textures. :-)

34. Bo Peep is a character from “Toy Story”. “ToyStory” made history as the first computer animatedfeature film and was created by Disney and Pixar.What texture techniques are at work in this image?What was the map shape for the wall? For the lamp?

35: A major drawback to2D texture mapping isthe necessity of handlingsingularities. Forinstance, a sphericalmapping has twosingularities, one each at

the North and SouthPoles. Just as it makes nosense to talk about thetime zone at the NorthPole, it’s impossible to

determine the second texture coordinate by the usualmathematical conversion. A programmer has to

Page 5: Teaching Texture Mapping Visually - Home | ACM … 6: Two-dimensional mappings use pre-existing images. This slide shows some images that might be used for texture mapping. The images

5

anticipate singularities and handle them as specialcases or the program will bomb.

36: In a 2D planarmapping, a checkerpattern degenerates intostripes along the axisbeing projected, whichdoes not happen with a3D mapping of a checker

pattern.

37: In three-dimensionaltexture mapping, eachpoint determines its colorwithout the use of anintermediate map shape(Peachey, 1985; Perlin,1985). We use the (x,y,z)

coordinate to compute the color directly. It’sequivalent to carving an object out of a solidsubstance. Most 3D texture functions do notexplicitly store a value for each (x, y, z)-coordinate,but use a procedure to compute a value based on thecoordinate and thus are called procedural textures.

38: To put stripes the leftteapot, we find theinteger part of the z-valueof each point of theobject. If resulting valueis even, we choose red;otherwise we choose

white. How were the stripes produced in the othertwo teapots?

39: To produce the ringsin the upper left teapot,we use the x- and y-components to computethe distance of a pointfrom the object’s center,and truncate the result. If

the resulting value is even, we choose red; otherwisewe choose white. Which two components were usedto produce the rings on the upper right teapot?

40: Here are texturescreated by ramp and sinefunctions. A nice ramp iscreated by the functionmod(x,a)/a. This rampfunction has a range ofzero to one, as does

(sin(x)+1)/2. In this picture, we assigned magenta to

value of zero and yellow to the value one. Which ofthese teapot is using a sine function? How do youknow?

41: We can use a point tocompute an index into acolor table. One way todo this is to keep thefractional part of the x-coordinate, which rangesbetween zero and one,

and multiply it by the number of elements in the colortable.

42: Regular patterns arenot as interesting aspatterns with somerandomness. For texturemapping the randomnessis produced by a noisefunction. Desirable

properties for such a noise function are (Perlin, 1985):* known range * stationary* band limited * isotropic

43: Lattice noise hasthese desirableproperties. It stores anumber from the randomnumber generator at eachinteger lattice point in a3D array. If a point from

the object happens to have integer coordinates, alattice noise function does a table lookup to find thevalue to return. If the object’s point has non-integervalues, the function uses trilinear interpolation todetermine the returned value.

44: A second techniquefor producing “nicenoise” is called gradientnoise. Gradient noisegenerates random unitvectors for each integerlattice point, and uses

interpolation to find values for non-integercoordinates.

45: In lattice noise,maxima and minimaalways occur atregularly-spacedintervals, since it firstfixes values to the(integer) positions of the

Page 6: Teaching Texture Mapping Visually - Home | ACM … 6: Two-dimensional mappings use pre-existing images. This slide shows some images that might be used for texture mapping. The images

6

lattice and interpolates to obtain intermediate values.The regularity of these maxima and minima can benoticeable to an observer, as demonstrated in thisslide. Gradient noise does not suffer from thisproblem.

46: We can change thefrequency and amplitudeto vary the nature of thenoise. The middle imagein this slide depicts thefunction

noise(x,y,z)We can vary the effect of the noise by using theexpression

noise(f*x, f*y, f*z) * awhere f controls the frequency and a controls theamplitude. Noise having large amplitudes will resultin a greater range of colors. Noise having highfrequency will contain more detail. In the slide thereare four images surrounding the depiction of theoriginal noise function. Which image portrays noisehaving lower frequency and lower amplitude than theoriginal? Which has higher frequency and loweramplitude?

47: This is ademonstration of how 1/fnoise is created. Webegin with a noisefunction, depicted on theleft. To this we add thesame noise function with

twice the frequency and half the amplitude, whichresults in the second picture. The third image is thesum of the noise in the second picture plus the noisefunction with four times the frequency and a quarterof the amplitude. We can continue adding noise ofhigher and higher frequency until the frequency is sohigh that something as large as a pixel won’t be ableto record it.

48: Here we finally beginseeing some applicationof noise to texturemapping. To get aWisconsin-styled black-and-white spotted teapot,use the following

pseudocode:gray = noise(x,y,z)if(gray > threshold)

choose white else

choose black

49: Perturbing stripes canresult in a texture with amarbled appearance.

50: This is the “GratefulTeapot”, created byperturbing a “pinwheeltexture” to produce anindex into a color table.This texture was createdby Kevin Ferguson.

51: Making a wood-grained object beginswith a three-dimensionaltexture of concentricrings (Peachey, 1985).By using noise to varythe ring shape and the

inter-ring distance, we can create reasonably realisticwood.

52: We can create anirridescence effect bycombining the color froma color table with theobject’s original color.Adding noise to perturbthe color table lookup

creates a mother-of-pearl effect.

53: Procedural functionscan not only determine anobject’s color, but itsgeometry as well. Volumedensity functions describethe geometry of gases andare similar to solid

texturing procedures in that they take a point in three-dimensional space as input and return a value.Instead of returning a color, they return a densityvalue. The cloud in this image is a procedurallyaltered metaball created by David Ebert.

54: This still is from themovie “Getting Into Art”,by David Ebert anddiplays another exampleanother example of avolume density function.Name the texture

Page 7: Teaching Texture Mapping Visually - Home | ACM … 6: Two-dimensional mappings use pre-existing images. This slide shows some images that might be used for texture mapping. The images

7

mapping techniques you see. Which are the 3Dtextures?

55: All the frames in themovie “Toy Story” wererendered using Pixar’sPhotorealisticRenderman. InRenderman, textures areadded via the use of“shaders”. Compare

the horse pattern on the quilt to the wood pattern inthe headboard. Which is more likely to be a 3Dtexture?

56: Bump mappingaffects object surfaces,making them appearrough, wrinkled, ordented (Blinn, 1978).Bump mapping alters thesurface normals before

the shading calculation takes place. It’s possible tochange a surface normals magnitude or direction.

57: In the upper leftimage, lattice noise altersthe magnitude of theteapot’s surface normals,which creates a rough-looking surface. Latticenoise at a lower

frequency changes the magnitude of the surfacenormals of the upper right teapot. It appears dented.The lower left teapot is the result of using sin(y)/ 2 +.5 to scale the normals magnitude, which results in arippled effect. In all cases the profile of the teapot isstill smooth. Bump mapping does not change theunderlying geometry of the model, but fools theshading algorithm to produce an interesting surface.

58: In contast,displacement mappingalters an object’sgeometry (Cook, 1984).Compare the profilesand the shadows cast bythese two objects.

Which is bump mapped?

59: Embossing is a form of bump mapping. Toemboss the letter “D” onto the teapot, we map eachpoint of the object into the “D” image. If we land at alocation where there is a transition from white toblack, then we rotate the point’s surface normal by anangle theta. If we land at a location in the “D” wherethere is a transition from black to white, then werotate the point’s surface normal by -theta. If we landat a location where there is no transition, we don’t doanything to the surface normal.

60: Environment mapping is a cheap way to createreflections (Blinn and Newell, 1976). While it’s easyto create reflections with a ray tracer, ray tracing isstill too expensive for long animations. Adding an

environment mappingfeature to a z-bufferbased renderer will createreflections that areacceptable in a lot ofsituations. Environmentmapping is a two-

dimensional texture mapping technique that uses amap shape of a box and a map parameter of areflection ray.

61: Here are side-by-side comparisons of raytracingand environment mapping. What differences can yousee?

62: Environmentmapping is cheaper thanraytracing and works

well when the reflective surface is planar or convexand there are no obvious sets of parallel lines in thereflection. In the top example the results fromenvironment mapping compare favorably with

raytracing, but in thelower example, thereflected lines of theceiling tiles do not alignwith the actual ceiling.

63: Notice the differencein rendering timesbetween raytracing andenvironment mapping.Compare the differencein appearance.

Page 8: Teaching Texture Mapping Visually - Home | ACM … 6: Two-dimensional mappings use pre-existing images. This slide shows some images that might be used for texture mapping. The images

8

64: In this still from “ToyStory,” what techniquesare being applied SlinkyDog’s ear and Rex’s skin?This image is notraytraced, yet reflectionsof Slinky Dog and Rexare visible in the highlypolished floor. Whattechnique created thiseffect?

65: No matter the type ofmapping we’re undertaking, we run the danger ofaliasing. Aliasing can ruin the appearance of atexture-mapped object.

66: Aliasing is caused byundersampling. Twoadjacent pixels in anobject may not map to

adjacent pixels in the texture map. As a result, someof the information from the texture map is lost whenit is applied to the object.

67: Antialiasingminimizes the effects ofaliasing. One method,called prefiltering, treatsa pixel on the object as anarea (Catmull, 1978). It

maps the pixel’s area into the texture map. Theaverage color is computed from the pixels inside thearea swept out in the texture map.

68: A second method,called supersampling,also computes an averagecolor (Crow, 1981). Inthis example each of fourcorners of an object pixelare mapped into the

texture. The four pixels from the texture map areaveraged to produce the final color for the object.

69: Prefiltering in action

70: Supersampling inaction.

71: Antialiasing isexpensive due to theadditional computationrequired to compute anaverage color.Mipmapping saves someexpense by

precalculating some average colors (Williams, 1983).The mipmap algorithm first creates several versionsof the texture. Beginning with the original texture themipmap algorithm computes a new texture that’s onefourth the size. In the new, smaller texture map, eachpixel contains the average of four pixels from theoriginal texture. The process of creating smallerimages continues until we get a texture mapcontaining one pixel. That one pixel contains theaverage color of the original texture map in itsentirety.

72: In the texturemapping phase thearea of each pixel onthe object is mappedinto the originaltexture map. Themipmap computes ameasure of how many texture pixels are in the areadefined by the mapped pixel. In this exampleapproximately nine texture pixels will influence thefinal color so the ratio of texture pixels to object pixelis 9:1.

73: To compute thefinal color, we findthe two texture mapswhose ratios oftexture pixels areclosest to the ratio forthe current objectpixel. We look up the pixel colors in these two mapsand average them.

Page 9: Teaching Texture Mapping Visually - Home | ACM … 6: Two-dimensional mappings use pre-existing images. This slide shows some images that might be used for texture mapping. The images

9

74: All images are rendered at 512x324. The upper leftfigure is not antialiased. The figure to its right wasrendered with mipmapping. The textures are a littlebetter. In the bottom row, the left image wassupersampled at a rate of nine samples to one pixel.The final image benefited from 9:1 supersamplingand mipmapping.

75-79: The final series of slides, courtesy of Evans andSutherland, demonstrate mipmapping. Theforeground in these images is texture mapped usingthe bigger mipmaps containing more detail, with thesmaller mipmaps reserved for the background. Inslide 75, compare cultivated fields in the foregroundwith those in the background. The technique iseffective in simulating a wide variety of terrains, ascan be seen in slides 76-78. Evans and Sutherlanddevelop flight simulators to train pilots. Thesesimulators project views of what the pilot would seeif actually flying the plane (slide 79). The simulatorschange the views as the pilot flies the plane, and mustreact instaneously with new views in response to pilotcommands. Mipmapping heightens the sense ofreality by adding detail to the views.

References(Blinn, 1978) J. Blinn, Simulations of Wrinkled

Surfaces. Computer Graphics 12(3) August1978, 286-292.

(Blinn and Newell, 1976) J. Blinn and M. Newell,Texture and Reflection in ComputerGenerated Images. Communications of theACM 19(10) October 1976, 542-546.

(Catmull, 1974) E. Catmull, A Subdivision Algorithmfor Computer Display of Curved Surfaces. PhDthesis, Department of Computer Science,University of Utah, December 1974.

(Catmull, 1978) E. Catmull, A Hidden-SurfaceAlgorithm with Anti-Aliasing. ComputerGraphics 12 (3) August 1978, 6-10.

(Cook, 1984) R. Cook, Shade Trees. ComputerGraphics 18 (3) July 1984 223-231.

(Crow, 1981) F. Crow, A Comparison of AntialiasingTechniques. IEEE Computer Graphics andApplications. 1 (1) January 1981, 40-49.

(Peachey, 1985) D. Peachey, Solid Texturing ofComplex Surfaces. Computer Graphics 19 (3)July 1985, 279-286.

(Perlin, 1985) K. Perlin, An Image Synthesizer.Computer Graphics 19 (3) July 1985, 287-296.

(Williams, 1983) L.Williams,PyradmialParametrics.ComputerGraphics 17 (3)

July 1983, 1-11.

For more information on mapping techniques, see:D. Ebert, F. K. Musgrave, D. Peachey, K. Perlin and S.

Worley, Texturing and Modeling: A ProceduralApproach. Academic Press, 1994.

J. Foley, A. vanDam, S. Feiner and J. Hughes,Computer Graphics: Principles and Practice.2nd. ed. Addison-Wesley, 1990.

A. Watt and M. Watt, Advanced Animation andRendering Techniques: Theory and Practice.Addison-Wesley, 1992.

CreditsThe dining room seen in slides 6 and 22 was createdby Steve van der Burg and rendered using POVRay.The teapots in slides 11 and 14 as well as theraytracing examples on slides 61-63 were donerendered using Craig Kolb’s Rayshade. David Ebertcontributed slides 53 and 54. (Thanks, David!) Thescene in slides 62 and 63 was created using StevenChenney’s Sced. Kevin Ferguson developed the“pinwheel texture” to create the Grateful Teapot inslide 50. Pixar and Disney graciously donated the“Toy Story” images (slides 36, 55, and 64). ThroughDave Tubbs, Evans and Sutherland generouslydonated slides 75-79.

All other slides were created with custom renderingsoftware developed at DePaul University. Texturesfor the beachball and towel in the title slide camefrom the SIGGRAPH 97 beachball and committee“surfer” shirt.

Many people contributed time, expertise andcreativity to this slide set. Thanks to SteveCunningham for initial discussions that formed thecore material for set and for his patience in reviewingmany, many drafts. Alain Chesnais made manysubstantive and constructive comments andsuggested the slides on parametric mapping and thevisual comparison of lattice and gradient noise.Stephen Spencer, Judy Brown and Tom Rieke alsomade excellent suggestions for improvement to boththe images and the text. Jackie White was mostgracious in lending her time, despite adversecondition, to help create the title slide. An extrathanks you goes to Stephen Spencer who as Director

Page 10: Teaching Texture Mapping Visually - Home | ACM … 6: Two-dimensional mappings use pre-existing images. This slide shows some images that might be used for texture mapping. The images

10

for Publications supported the development of thisset.

Thanks also to the 1997 Graphics students at DePaul,especially Olivier Buisard, who class-tested theseimages.