Graphics Gems
, by GlassnerNote: Supplemental materials are not guaranteed with Rental or Used book purchases.
- ISBN: 9780122861666 | 0122861663
- Cover: Hardcover
- Copyright: 6/29/1993
Computer Graphics compiles the "tricks of the trade" in computer graphics--collected from over 50 different programmers around the world. Between these covers are more than 100 different ideas, methods, and techniques that anyone can use in graphics programming, ranging from basic geometry to specific algorithms.
Preface | p. xv |
Introduction | p. xvii |
Mathematical Notation | p. xix |
Pseudo-Code | p. xxi |
Contributors | p. xxvi |
2D Geometry | |
Useful 2D Geometry | p. 3 |
Trigonometry Summary | p. 12 |
Useful Trigonometry | p. 13 |
Trigonometric Functions at Select Points | p. 18 |
Triangles | p. 20 |
Generating Random Points in Triangles (649) | p. 24 |
Fast Line-Edge Intersections on a Uniform Grid (651) | p. 29 |
Anti-Aliasing Summary | p. 37 |
Area of Intersection: Circle and a Half-Plane | p. 38 |
Area of Intersection: Circle and a Thick Line | p. 40 |
Area of Intersection: Two Circles | p. 43 |
Vertical Distance from a Point to a Line | p. 47 |
A Fast 2D Point-on-Line Test (654) | p. 49 |
Fast Circle-Rectangle Intersection Checking (656) | p. 51 |
2D Rendering | |
Circles of Integral Radius on Integer Lattices | p. 57 |
Nice Numbers for Graph Labels (657) | p. 61 |
Efficient Generation of Sampling Jitter Using Look-up Tables (660) | p. 64 |
Scan Conversion Summary | p. 75 |
Fast Anti-Aliasing Polygon Scan Conversion (662) | p. 76 |
Generic Convex Polygon Scan Conversion and Clipping (667) | p. 84 |
Concave Polygon Scan Conversion (681) | p. 87 |
Fast Scan Conversion of Arbitrary Polygons | p. 92 |
Line-Drawing Summary | p. 98 |
Digital Line Drawing (685) | p. 99 |
Symmetric Double Step Line Algorithm (686) | p. 101 |
Rendering Anti-Aliased Lines (690) | p. 105 |
An Algorithm for Filling in 2D Wide Line Bevel Joints | p. 107 |
Rendering Fat Lines on a Raster Grid | p. 114 |
Two-Dimensional Clipping: A Vector-Based Approach (694) | p. 121 |
Periodic Tilings of the Plane on a Raster Grid | p. 129 |
Image Processing | |
Anti-Aliasing Filters Summary | p. 143 |
Convenient Anti-Aliasing Filters That Minimize "Bumpy" Sampling | p. 144 |
Filters for Common Resampling Tasks | p. 147 |
Smoothing Enlarged Monochrome Images | p. 166 |
Median Finding on a 3 x 3 Grid (711) | p. 171 |
Ordered Dithering (713) | p. 176 |
A Fast Algorithm for General Raster Rotation | p. 179 |
Useful 1-to-1 Pixel Transforms | p. 196 |
Alpha Blending | p. 210 |
Frame Buffer Techniques | |
Frame Buffers and Color Maps | p. 215 |
Reading a Write-Only Write Mask | p. 219 |
A Digital "Dissolve" Effect (715) | p. 221 |
Mapping RGB Triples onto Four Bits (718) | p. 233 |
What Are the Coordinates of a Pixel? | p. 246 |
Proper Treatment of Pixels as Integers (719) | p. 249 |
Normal Coding | p. 257 |
Recording Animation in Binary Order for Progressive Temporal Refinement (720) | p. 265 |
1-to-1 Pixel Transforms Optimized through Color-Map Manipulation | p. 270 |
A Seed Fill Algorithm (721) | p. 275 |
Filling a Region in a Frame Buffer | p. 278 |
Precalculating Addresses for Fast Fills, Circles, and Lines | p. 285 |
A Simple Method for Color Quantization: Octree Quantization | p. 287 |
3D Geometry | |
Useful 3D Geometry | p. 297 |
An Efficient Bounding Sphere (723) | p. 301 |
Intersection of Two Lines in Three-Space | p. 304 |
Intersection of Three Planes | p. 305 |
Mapping Summary | p. 306 |
Digital Cartography for Computer Graphics | p. 307 |
Albers Equal-Area Conic Map Projection (726) | p. 321 |
Boxes and Spheres Summary | p. 326 |
Spheres-to-Voxels Conversion | p. 327 |
A Simple Method for Box-Sphere Intersection Testing (730) | p. 335 |
3D Rendering | |
3D Grid Hashing Function (733) | p. 343 |
Backface Culling | p. 346 |
Fast Dot Products for Shading | p. 348 |
Scanline Depth Gradient of a Z-Buffered Triangle | p. 361 |
Simulating Fog and Haze | p. 364 |
Interpretation of Texture Map Indices | p. 366 |
Multidimensional Sum Tables | p. 376 |
Ray Tracing | |
A Simple Ray Rejection Test | p. 385 |
Ray-Object Intersection Summary | p. 387 |
Intersection of a Ray with a Sphere | p. 388 |
An Efficient Ray-Polygon Intersection (735) | p. 390 |
Fast Ray-Polygon Intersection | p. 394 |
Fast Ray-Box Intersection (736) | p. 395 |
Shadow Attenuation for Ray Tracing Transparent Objects | p. 397 |
Numerical and Programming Techniques | |
Root Finding Summary | p. 403 |
Cubic and Quartic Roots (738) | p. 404 |
A Bezier Curve-Based Root-Finder (787) | p. 408 |
Using Sturm Sequences to Bracket Real Roots of Polynomial Equations (743) | p. 416 |
Distance Measures Summary | p. 423 |
A High-Speed, Low Precision Square Root (756) | p. 424 |
A Fast Approximation to the Hypotenuse (758) | p. 427 |
A Fast Approximation to 3D Euclidean Distance | p. 432 |
Full-Precision Constants | p. 434 |
Converting between Bits and Digits | p. 435 |
Storage-free Swapping | p. 436 |
Generating Random Integers | p. 438 |
Fast 2D-3D Rotation | p. 440 |
Bit Patterns for Encoding Angles | p. 442 |
Bit Interleaving for Quad- or Octrees (759) | p. 443 |
A Fast HSL-to-RGB Transform (763) | p. 448 |
Matrix Techniques | |
Matrix Identities | p. 453 |
Rotation Matrix Methods Summary | p. 455 |
Transforming Axes | p. 456 |
Fast Matrix Multiplication | p. 460 |
A Virtual Trackball | p. 462 |
Matrix Orthogonalization (765) | p. 464 |
Rotation Tools | p. 465 |
Matrix Inversion (766) | p. 470 |
Matrices and Transformations | p. 472 |
Efficient Post-Concatenation of Transformation Matrices (770) | p. 476 |
Modeling and Transformations | |
Transformation Identities | p. 485 |
Fixed-Point Trigonometry with CORDIC Iterations (773) | p. 494 |
Using Quaternions for Coding 3D Transformations (775) | p. 498 |
3D Viewing and Rotation Using Orthonormal Bases (778) | p. 516 |
The Use of Coordinate Frames in Computer Graphics | p. 522 |
Forms, Vectors, and Transforms (780) | p. 533 |
Properties of Surface-Normal Transformations | p. 539 |
Transforming Axis-Aligned Bounding Boxes (785) | p. 548 |
Constructing Shapes Summary | p. 551 |
Defining Surfaces from Sampled Data | p. 552 |
Defining Surfaces from Contour Data | p. 558 |
Computing Surface Normals for 3D Models | p. 562 |
Calculation of Reference Frames along a Space Curve | p. 567 |
Curves and Surfaces | |
Planar Cubic Curves | p. 575 |
Explicit Cubic Spline Interpolation Formulas | p. 579 |
Fast Spline Drawing | p. 585 |
Some Properties of Bezier Curves | p. 587 |
Tutorial on Forward Differencing | p. 594 |
Integration of Bernstein Basis Functions | p. 604 |
Solving the Nearest-Point-on-Curve Problem (787) | p. 607 |
An Algorithm for Automatically Fitting Digitized Curves (797) | p. 612 |
Appendix I: C Utilities | |
Graphics Gems C Header File | p. 629 |
2D and 3D Vector C Library | p. 633 |
Memory Allocation in C | p. 643 |
Two Useful C Macros | p. 644 |
How To Build Circular Structures in C | p. 645 |
How To Use C Register Variables to Point to 2D Arrays | p. 646 |
Appendix 2: C Implementations | |
The C Code follows the same order as the Gems | p. 647-807 |
References | p. 808 |
Index | p. 822 |
Table of Contents provided by Syndetics. All Rights Reserved. |
What is included with this book?
The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.