Cover image for Practical algorithms for 3D computer graphics
Title:
Practical algorithms for 3D computer graphics
Publication Information:
Natic, Mass : A K Peters, 2001
Physical Description:
1 CD-ROM ; 12cm
ISBN:
9781568811543
General Note:
Accompanies text with the same tittle : (T385 F48 2001)

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000004523514 CP 2007 Computer File Accompanies Open Access Book Compact Disc Accompanies Open Access Book
Searching...

On Order

Summary

Summary

This book introduces the key algorithms that lie at the heart of all computer graphics software packages in a way that they can readily be put to use. Where possible, the algorithms are accompanied by practical useful computer codes. The book begins with the fundamental coordinate geometry and other mathematical ideas that lie at the heart of nearly all of the algorithms. The author takes a step-by-step approach to the design of rendering algorithms from the fastest scanline Z-buffer procedure to the high-quality ray-traced approach. The book includes several chapters devoted to building real-time 3D viewing and animation programs for the Windows operating system using Visual C++.


Reviews 1

Choice Review

Originally written for graduate students, this book is clear and comprehensive enough to serve advanced undergraduates and professional programmers. Ferguson discusses a wide variety of mathematical and practical methods for rendering and animation. Chapter 1 treats the mathematical background: coordinate systems including homogeneous coordinates and transformations using matrices as well as methods for computing the intersections of figures. Splines and quaternions are also presented. Rendering, texture generation, animation, and modeling methods are discussed with both mathematical and program codes. Its coverage is broader than that of R. Parent's Computer Animation: Algorithms and Techniques (CH, Mar'02), which emphasizes modeling and motion more than rendering. Ferguson also includes a CD-ROM that provides source code from the book as well as some movie files that illustrate animation methods. Ferguson's book contains numerous figures, though all in black and white (whereas some of Parent's are in color). Ferguson contains two advanced parts that discuss modeling, video, and texture, and real-time 3D graphics for Windows. These parts support advanced readers who might be working in game development or graphics software systems. The general tone of the book allows it to be used as a resource to empower the imagination of graphics programmers and students. Upper-division undergraduates through professionals. S. L. Tanimoto University of Washington


Table of Contents

Prefacep. ix
Part I Basic Principlesp. 1
1 Introductionp. 3
1.1 A Note on Mathematics for 3D Computer Graphicsp. 5
1.2 Getting Up to Speedp. 5
1.3 Using the Accompanying Softwarep. 6
1.4 Where Do You Want to Go Tomorrow?p. 7
2 Basic Theory and Mathematical Resultsp. 9
2.1 Coordinate Systemsp. 9
2.2 Vectorsp. 12
2.3 The Linep. 13
2.4 The Planep. 14
2.5 Intersection of a Line and a Planep. 15
2.6 Closest Distance of a Point from a Linep. 16
2.7 Closest Distance of Approach between Two Linesp. 17
2.8 Reflection in a Planep. 18
2.9 Refraction at a Planep. 19
2.10 Intersection of a Line with Primitive Shapesp. 21
2.11 Transformationsp. 23
2.12 Parametric Curvesp. 36
2.13 Interpolationp. 38
2.14 Bezier Curvesp. 42
2.15 Cubic Splinesp. 46
2.16 A Spline in One Dimensionp. 48
2.17 Angular Interpolation--Quaternionsp. 51
3 Data Structures for 3D Graphicsp. 63
3.1 Structure Addressing Conventionsp. 65
3.2 Linked Lists or Arrays of Structures?p. 67
3.3 Algorithms for Editing Arrays of Structuresp. 69
3.4 Making an Edge List from a List of Polygonal Facesp. 73
3.5 Hierarchical Modelsp. 75
3.6 Finding Adjacent Polygonsp. 77
3.7 Finding Polygons Adjacent to Edgesp. 79
3.8 A Data Structure for Image Processingp. 85
4 Fast Realistic Renderingp. 87
4.1 The Basic Rendering Algorithmp. 88
4.2 Wireframe Drawingp. 90
4.3 Hidden Surface Drawingp. 93
4.4 The Painter's Algorithmp. 98
4.5 The Z Buffer Hidden Surface Algorithmp. 100
4.6 The Scanline Z Buffer Algorithmp. 104
4.7 Hidden Line Drawingp. 105
4.8 Culling and Clippingp. 111
4.9 Anti-Aliasingp. 116
4.10 Lightingp. 122
4.11 Shadingp. 128
4.12 Pseudo Shadowsp. 136
4.13 Surface Texturingp. 141
4.14 Image Mappingp. 147
4.15 Tricks and Tipsp. 155
5 Ray-Traced Realistic Renderingp. 159
5.1 The Standard Ray-Tracing Algorithmp. 160
5.2 Optimizationp. 164
5.3 Multi-Threading and Parallel Processingp. 178
6 Computer Animationp. 181
6.1 Keyframes--Tweeningp. 181
6.2 Animating Rigid Motionp. 183
6.3 Character Animationp. 198
6.4 Inverse Kinematicsp. 211
6.5 Physical Animationp. 231
Part II Practical Algorithms: Modeling, Video Processing and Procedural Texturesp. 241
7 Modeling with Polygonal Datasetsp. 243
7.1 Triangulating Polygonsp. 244
7.2 Triangulating Polygons with Holesp. 254
7.3 Subdividing Polygonal Facetsp. 261
7.4 Loftingp. 264
7.5 Surfaces of Revolutionp. 270
7.6 Bevelingp. 272
7.7 Orienting Surface Normalsp. 276
7.8 Delaunay Triangulationp. 279
7.9 Boolean Modelingp. 286
7.10 Texture Coordinatesp. 304
7.11 Building Primitivesp. 311
8 Image and Video Processingp. 315
8.1 A Data Structure for Image Processingp. 316
8.2 Basic Functions for Drawing in a Framebufferp. 319
8.3 Filtering Imagesp. 321
8.4 Effects Using the Z Bufferp. 329
8.5 Video Effectsp. 338
9 Algorithms for Procedural Texturesp. 355
9.1 A Standard Interfacep. 356
9.2 Regular Dotsp. 363
9.3 Regular Bumpsp. 367
9.4 Textures Derived from the Noise Functionsp. 373
9.5 Regular Dots Perturbed by Noisep. 379
9.6 Random Dots and Crystalsp. 383
9.7 Sharply Edged Featuresp. 387
9.8 Rough Surfacesp. 389
9.9 Stucco Surfacesp. 392
9.10 Leather and Cauliflowerp. 394
Part III Real-Time 3D Graphics for Windowsp. 397
10 3D Graphics with OpenGLp. 399
10.1 The Example Applicationp. 401
11 3D Graphics with Direct3Dp. 439
11.1 The Component Object Modelp. 441
11.2 Direct3D Retained Modep. 443
11.3 Starting the Projectp. 444
11.4 The CD3DView Class Header Filep. 445
11.5 Setting Up Direct3Dp. 448
11.6 Essential Message Handlingp. 456
11.7 Enhancing the Direct3D Examplep. 465
11.8 Animation in Direct3Dp. 479
12 A Movie Player Using DirectDrawp. 499
12.1 The Main Programp. 502
12.2 Reading and Decoding an AVI Filep. 515
12.3 Reading FLIC Filesp. 520
Appendix Additional Mathematical Resultsp. 523
A.1 The Intersection of a Line with Non-Planar Primitive Shapesp. 523
A.2 Some Other Useful Non-Geometric Mathematical Resultsp. 531
Indexp. 535