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
Preface | p. ix |
Part I Basic Principles | p. 1 |
1 Introduction | p. 3 |
1.1 A Note on Mathematics for 3D Computer Graphics | p. 5 |
1.2 Getting Up to Speed | p. 5 |
1.3 Using the Accompanying Software | p. 6 |
1.4 Where Do You Want to Go Tomorrow? | p. 7 |
2 Basic Theory and Mathematical Results | p. 9 |
2.1 Coordinate Systems | p. 9 |
2.2 Vectors | p. 12 |
2.3 The Line | p. 13 |
2.4 The Plane | p. 14 |
2.5 Intersection of a Line and a Plane | p. 15 |
2.6 Closest Distance of a Point from a Line | p. 16 |
2.7 Closest Distance of Approach between Two Lines | p. 17 |
2.8 Reflection in a Plane | p. 18 |
2.9 Refraction at a Plane | p. 19 |
2.10 Intersection of a Line with Primitive Shapes | p. 21 |
2.11 Transformations | p. 23 |
2.12 Parametric Curves | p. 36 |
2.13 Interpolation | p. 38 |
2.14 Bezier Curves | p. 42 |
2.15 Cubic Splines | p. 46 |
2.16 A Spline in One Dimension | p. 48 |
2.17 Angular Interpolation--Quaternions | p. 51 |
3 Data Structures for 3D Graphics | p. 63 |
3.1 Structure Addressing Conventions | p. 65 |
3.2 Linked Lists or Arrays of Structures? | p. 67 |
3.3 Algorithms for Editing Arrays of Structures | p. 69 |
3.4 Making an Edge List from a List of Polygonal Faces | p. 73 |
3.5 Hierarchical Models | p. 75 |
3.6 Finding Adjacent Polygons | p. 77 |
3.7 Finding Polygons Adjacent to Edges | p. 79 |
3.8 A Data Structure for Image Processing | p. 85 |
4 Fast Realistic Rendering | p. 87 |
4.1 The Basic Rendering Algorithm | p. 88 |
4.2 Wireframe Drawing | p. 90 |
4.3 Hidden Surface Drawing | p. 93 |
4.4 The Painter's Algorithm | p. 98 |
4.5 The Z Buffer Hidden Surface Algorithm | p. 100 |
4.6 The Scanline Z Buffer Algorithm | p. 104 |
4.7 Hidden Line Drawing | p. 105 |
4.8 Culling and Clipping | p. 111 |
4.9 Anti-Aliasing | p. 116 |
4.10 Lighting | p. 122 |
4.11 Shading | p. 128 |
4.12 Pseudo Shadows | p. 136 |
4.13 Surface Texturing | p. 141 |
4.14 Image Mapping | p. 147 |
4.15 Tricks and Tips | p. 155 |
5 Ray-Traced Realistic Rendering | p. 159 |
5.1 The Standard Ray-Tracing Algorithm | p. 160 |
5.2 Optimization | p. 164 |
5.3 Multi-Threading and Parallel Processing | p. 178 |
6 Computer Animation | p. 181 |
6.1 Keyframes--Tweening | p. 181 |
6.2 Animating Rigid Motion | p. 183 |
6.3 Character Animation | p. 198 |
6.4 Inverse Kinematics | p. 211 |
6.5 Physical Animation | p. 231 |
Part II Practical Algorithms: Modeling, Video Processing and Procedural Textures | p. 241 |
7 Modeling with Polygonal Datasets | p. 243 |
7.1 Triangulating Polygons | p. 244 |
7.2 Triangulating Polygons with Holes | p. 254 |
7.3 Subdividing Polygonal Facets | p. 261 |
7.4 Lofting | p. 264 |
7.5 Surfaces of Revolution | p. 270 |
7.6 Beveling | p. 272 |
7.7 Orienting Surface Normals | p. 276 |
7.8 Delaunay Triangulation | p. 279 |
7.9 Boolean Modeling | p. 286 |
7.10 Texture Coordinates | p. 304 |
7.11 Building Primitives | p. 311 |
8 Image and Video Processing | p. 315 |
8.1 A Data Structure for Image Processing | p. 316 |
8.2 Basic Functions for Drawing in a Framebuffer | p. 319 |
8.3 Filtering Images | p. 321 |
8.4 Effects Using the Z Buffer | p. 329 |
8.5 Video Effects | p. 338 |
9 Algorithms for Procedural Textures | p. 355 |
9.1 A Standard Interface | p. 356 |
9.2 Regular Dots | p. 363 |
9.3 Regular Bumps | p. 367 |
9.4 Textures Derived from the Noise Functions | p. 373 |
9.5 Regular Dots Perturbed by Noise | p. 379 |
9.6 Random Dots and Crystals | p. 383 |
9.7 Sharply Edged Features | p. 387 |
9.8 Rough Surfaces | p. 389 |
9.9 Stucco Surfaces | p. 392 |
9.10 Leather and Cauliflower | p. 394 |
Part III Real-Time 3D Graphics for Windows | p. 397 |
10 3D Graphics with OpenGL | p. 399 |
10.1 The Example Application | p. 401 |
11 3D Graphics with Direct3D | p. 439 |
11.1 The Component Object Model | p. 441 |
11.2 Direct3D Retained Mode | p. 443 |
11.3 Starting the Project | p. 444 |
11.4 The CD3DView Class Header File | p. 445 |
11.5 Setting Up Direct3D | p. 448 |
11.6 Essential Message Handling | p. 456 |
11.7 Enhancing the Direct3D Example | p. 465 |
11.8 Animation in Direct3D | p. 479 |
12 A Movie Player Using DirectDraw | p. 499 |
12.1 The Main Program | p. 502 |
12.2 Reading and Decoding an AVI File | p. 515 |
12.3 Reading FLIC Files | p. 520 |
Appendix Additional Mathematical Results | p. 523 |
A.1 The Intersection of a Line with Non-Planar Primitive Shapes | p. 523 |
A.2 Some Other Useful Non-Geometric Mathematical Results | p. 531 |
Index | p. 535 |