Graphics and Game Gems Database

Book List Article Search Author Search
Graphics Gems
Edited by Andrew S. Glassner
Academic Press, 1990
ISBN 0-12-286166-3
• Official book website

Contents

Useful 2D Geometry
Andrew S. Glassner
Pages 3–11
Useful Trigonometry
Andrew S. Glassner
Pages 13–17
Trigonometric Functions at Select Points
Alan W. Paeth
Pages 18–19
Triangles
Ronald Goldman
Pages 20–23
Generating Random Points in Triangles
Greg Turk
Pages 24–28
Fast Line-Edge Intersections on a Uniform Grid
Andrew Shapira
Pages 29–36
Area of Intersection: Circle and a Half-Plane
Kelvin Thompson
Pages 38–39
Area of Intersection: Circle and a Thick Line
Kelvin Thompson
Pages 40–42
Area of Intersection: Two Circles
Kelvin Thompson
Pages 43–46
Vertical Distance from a Point to a Line
Kelvin Thompson
Pages 47–48
A Fast 2D Point-on-Line Test
Alan W. Paeth
Pages 49–50
Fast Circle-Rectangle Intersection Checking
Clifford A. Shaffer
Pages 51–53
Circles of Integral Radius on Integer Lattices
Alan W. Paeth
Pages 57–60
Nice Numbers for Graph Labels
Paul S. Heckbert
Pages 61–63
Efficient Generation of Sampling Jitter Using Look-Up Tables
Joseph M. Cychosz
Pages 64–74
Fast Anti-Aliasing Polygon Scan Conversion
Jack C. Morrison
Pages 76–83
Generic Convex Polygon Scan Conversion and Clipping
Paul S. Heckbert
Pages 84–86
Concave Polygon Scan Conversion
Paul S. Heckbert
Pages 87–91
Fast Scan Conversion of Arbitrary Polygons
Bob Wallis
Pages 92–97
Digital Line Drawing
Paul S. Heckbert
Pages 99–100
Symmetric Double Step Line Algorithm
Brian Wyvill
Pages 101–104
Rendering Anti-Aliased Lines
Kelvin Thompson
Pages 105–106
An Algorithm for Filling in 2D Wide Line Bevel Joints
Jack Ritter
Pages 107–113
Rendering Fat Lines on a Raster Grid
Bob Wallis
Pages 114–120
Two-Dimensional Clipping: A Vector-Based Approach
Hans J. W. Spoelder, Fons H. Ullings
Pages 121–128
Periodic Tilings of the Plane on a Raster Grid
Greg Lee, Mike Penk, Bob Wallis
Pages 129–139
Convenient Anti-Aliasing Filters That Minimize “Bumpy” Sampling
Mark J. Pavicic
Pages 144–146
Filter for Common Resampling Tasks
Ken Turkowski
Pages 147–165
Smoothing Enlarged Monochrome Images
John Olsen
Pages 166–170
Median Finding on a 3 × 3 Grid
Alan W. Paeth
Pages 171–175
Ordered Dithering
Stephen Hawley
Pages 176–178
A Fast Algorithm for General Paster Rotation
Alan W. Paeth
Pages 179–195
Useful 1-to-1 Pixel Transforms
Dale Schumacher
Pages 196–209
Alpha Blending
Kelvin Thompson
Pages 210–211
Frame Buffers and Color Maps
Andrew S. Glassner
Pages 215–218
Reading a Write-Only Write Mask
Alan W. Paeth
Pages 219–220
A Digital “Dissolve” Effect
Mike Morton
Pages 221–232
Mapping RGB Triples onto Four Bits
Alan W. Paeth
Pages 233–245
What Are the Coordinates of a Pixel?
Paul S. Heckbert
Pages 246–248
Proper Treatment of Pixels as Integers
Alan W. Paeth
Pages 249–256
Normal Coding
Andrew S. Glassner
Pages 257–264
Recording Animation in Binary Order for Progressive Temporal Refinement
Paul S. Heckbert
Pages 265–269
1-to-1 Pixel Transforms Optimized Through Color-Map Manipulation
Dale Schumacher
Pages 270–274
A Seed Fill Algorithm
Paul S. Heckbert
Pages 275–277
Filling a Region in a Frame Buffer
Ken Fishkin
Pages 278–284
Precalculating Addresses for Fast Fills, Circles, and Lines
Bill Wallace
Pages 285–286
A Simple Method for Color Quantization: Octree Quantization
Michael Gervautz, Werner Purgathofer
Pages 287–293
Useful 3D Geometry
Andrew S. Glassner
Pages 297–300
An Efficient Bounding Sphere
Jack Ritter
Pages 301–303
Intersection of Two Lines in Three-Space
Ronald Goldman
Pages 304–304
Intersection of Three Planes
Ronald Goldman
Pages 305–305
Digital Cartography for Computer Graphics
Alan W. Paeth
Pages 307–320
Albers Equal-Area Conic Map Projection
Paul D. Bame
Pages 321–325
Spheres-to-Voxels Conversion
Claudio Montani, Roberto Scopigno
Pages 327–334
A Simple Method for Box-Sphere Intersection Testing
James Arvo
Pages 335–339
3D Grid Hashing Function
Brian Wyvill
Pages 343–345
Backface Culling
Jeff Hultquist
Pages 346–347
Fast Dot Products for Shading
Mark Lee
Pages 348–360
Scanline Depth Gradient of a Z-Buffered Triangle
Kelvin Thompson
Pages 361–363
Simulating Fog and Haze
Andrew S. Glassner
Pages 364–365
Interpretation of Texture Map Indices
Andrew S. Glassner
Pages 366–375
Multidimensional Sum Tables
Andrew S. Glassner
Pages 376–381
A Simple Ray Rejection Test
Jack Ritter
Pages 385–386
Intersection of a Ray with a Sphere
Jeff Hultquist
Pages 388–389
An Efficient Ray-Polygon Intersection
Didier Badouel
Pages 390–393
Fast Ray-Polygon Intersection
Andrew Woo
Pages 394–394
Fast Ray-Box Intersection
Andrew Woo
Pages 395–396
Shadow Attenuation for Ray Tracing Transparent Objects
Andrew Pearce
Pages 397–399
Cubic and Quartic Roots
Jochen Schwarze
Pages 404–407
A Bézier Curve-Based Root-Finder
Philip J. Schneider
Pages 408–415
Using Sturm Sequences to Bracket Real Roots of Polynomial Equations
D. G. Hook, P. R. McAree
Pages 416–422
A High Speed, Low Precision Square Root
Paul Lalonde, Robert Dawson
Pages 424–426
A Fast Approximation to the Hypotenuse
Alan W. Paeth
Pages 427–431
A Fast Approximation to 3D Euclidean Distance
Jack Ritter
Pages 432–433
Full-Precision Constants
Kelvin Thompson
Pages 434–434
Converting Between Bits and Digits
Kelvin Thompson
Pages 435–435
Storage-Free Swapping
Brian Wyvill
Pages 436–437
Generating Random Integers
Andrew S. Glassner
Pages 438–439
Fast 2D-3D Rotation
Jack Ritter
Pages 440–441
Bit Patterns for Encoding Angles
Ken Shoemake
Pages 442–442
Bit Interleaving for Quad- or Octrees
Clifford A. Shaffer
Pages 443–447
A Fast HSL-to-RGB Transform
Ken Fishkin
Pages 448–449
Matrix Identities
Kelvin Thompson
Pages 453–454
Transforming Axes
Kelvin Thompson
Pages 456–459
Fast Matrix Multiplication
Kelvin Thompson
Pages 460–461
A Virtual Trackball
Jeff Hultquist
Pages 462–463
Matrix Orthogonalization
Eric Raible
Pages 464–464
Rotation Tools
Michael E. Pique
Pages 465–469
Matrix Inversion
Richard Carling
Pages 470–471
Matrices and Transformations
Ronald Goldman
Pages 472–475
Efficient Post-Concatenation of Transformation Matrices
Joseph M. Cychosz
Pages 476–481
Transformation Identities
Ned Greene
Pages 485–493
Fixed-Point Trigonometry with CORDIC Iterations
Ken Turkowski
Pages 494–497
Using Quaternions for Coding 3D Transformations
Patrick-Gilles Maillot
Pages 498–515
3D Viewing and Rotation Using Orthonormal Bases
Steve Cunningham
Pages 516–521
The Use of Coordinate Frames in Computer Graphics
Ken Turkowski
Pages 522–532
Forms, Vectors, and Transforms
Bob Wallis
Pages 533–538
Properties of Surface-Normal Transformations
Ken Turkowski
Pages 539–547
Transforming Axis-Aligned Bounding Boxes
James Arvo
Pages 548–550
Defining Surfaces from Sampled Data
Mark Hall
Pages 552–557
Defining Surfaces from Contour Data
Mark Hall
Pages 558–561
Computing Surface Normals for 3D Models
Andrew S. Glassner
Pages 562–566
Calculation of Reference Frames Along a Space Curve
Jules Bloomenthal
Pages 567–571
Planar Cubic Curves
Andrew S. Glassner
Pages 575–578
Explicit Cubic Spline Interpolation Formulas
Richard Rasala
Pages 579–584
Fast Spline Drawing
Julian Gomez
Pages 585–586
Some Properties of Bézier Curves
Ronald Goldman
Pages 587–593
Tutorial on Forward Differencing
Bob Wallis
Pages 594–603
Integration of Bernstein Basis Functions
Ronald Goldman
Pages 604–606
Solving the Nearest-Point-on-Curve Problem
Philip J. Schneider
Pages 607–611
An Algorithm for Automatically Fitting Digitized Curves
Philip J. Schneider
Pages 612–626