2D Geometry
|
|---|
| Useful 2d Geometry
| 3
|
| | Andrew S. Glassner
|
| Useful trigonometry
| 13
|
| Andrew S. Glassner
|
| Trigonometric functions at select points
| 18
|
| Alan W. Paeth
|
| Triangles
| 20
|
| Ronald Goldman
|
| Generating random points in triangles
| 24
|
| Greg Turk
|
| Fast line-edge intersections on a uniform grid
| 29
|
| Andrew Shapira
|
| Area of intersection: circle and a half-plane
| 38
|
| Kelvin Thompson
|
| Area of intersection: circle and a thick line
| 40
|
| Kelvin Thompson
|
| Area of intersection: two circles
| 43
|
| Kelvin Thompson
|
| Vertical distance from a point to a line
| 47
|
| Kelvin Thompson
|
| A fast 2d point-on-line test
| 49
|
| Alan W. Paeth
|
| Fast circle-rectangle intersection checking
| 51
|
| Clifford A. Shaffer
|
2D Rendering
|
|---|
| Circles of integral radius on integer lattices
| 57
|
| | Alan W. Paeth
|
| Nice numbers for graph labels
| 61
|
| Paul S. Heckbert
|
| Efficient generation of sampling jitter using look-up tables
| 64
|
| Joseph M. Cychosz
|
| Fast anti-aliasing polygon scan conversion
| 76
|
| Jack C. Morrison
|
| Generic convec polygon scan conversion and clipping
| 84
|
| Paul S. Heckbert
|
| Concave polygon scan conversion
| 87
|
| Paul S. Heckbert
|
| Fast scan conversion of arbitrary polygons
| 92
|
| Bob Wallis
|
| Digital line drawing
| 99
|
| Paul S. Heckbert
|
| Symmetric double step line algorithm
| 101
|
| Brian Wyvill
|
| Rendering anti-aliased lines
| 105
|
| Kelvin Thompson
|
| An algorithm for filling in 2d wide line bevek joints
| 107
|
| Jack Ritter
|
| Rendering fat lines on a raster grid
| 114
|
| Bob Wallis
|
| Two-dimensional clipping: a vector-based approach
| 121
|
| Hans J.W. Spoelder & Fons H. Ullings
|
| Periodic tilings of the plane on a raster grid
| 129
|
| Greg Lee, Mike Penk & Bob Wallis
|
Image Processing
|
|---|
| Convenient anti-aliasing filters that minimize "bumpy" sampling
| 144
|
| Mark J. Pavicic
|
| Filters for common resampling tasks
| 147
|
| Ken Turkowski
|
| Smoothing enlarged monochrome images
| 166
|
| John Olsen
|
| Median Finding on a 3x3 grid
| 171
|
| Alan W. Paeth
|
| Ordered dithering
| 176
|
| Stephen Hawley
|
| A fast algorithm for general raster rotation
| 179
|
| Alan W. Paeth
|
| Useful 1-to-1 pixel transforms
| 196
|
| Dale Schumacher
|
| Alpha blending
| 210
|
| Kelvin Thompson
|
Frame Buffer Techniques
|
|---|
| Frame Buffers And Color Maps
| 215
|
| Andrew S. Glassner
|
| Reading a write-only write mask
| 219
|
| Alan W. Paeth
|
| A digital "dissolve" effect
| 221
|
| Mike Morton
|
| Mapping RGB triples on four bits
| 233
|
| Alan W. Paeth
|
| What are the coordinates of a pixel ?
| 246
|
| Paul S. Heckbert
|
| Proper treatment of pixels as integers
| 249
|
| Alan W. Paeth
|
| Normal coding
| 257
|
| Andrew S. Glassner
|
| Recording animation in binary order for progressive temporal refinment
| 265
|
| Paul S. Heckbert
|
| 1-to-1 pixel transforms optimized through color-map manipulation
| 270
|
| Dale Schumacher
|
| A seed fill algorithm
| 275
|
| Paul S. Heckbert
|
| Filling a region in a frame buffer
| 278
|
| Ken Fishkin
|
| Precalculating addresses for fast fills, circles, and lines
| 285
|
| Bill Wallace
|
| A simple method for color quantization: octree quantization
| 287
|
| Michael Gervautz, Werner Purgathofer
|
3D Geometry
|
|---|
| Useful 3d geometry
| 297
|
| Andrew S. Glassner
|
| An efficient bounding sphere
| 301
|
| Jack Ritter
|
| Intersection of two lines in three-space
| 304
|
| Ronald Goldman
|
| Intersection of three planes
| 305
|
| Ronald Goldman
|
| Digital cartography for computer graphics
| 307
|
| Alan W. Paeth
|
| Albers equal-area conic map projection
| 321
|
| Paul D. Bame
|
| Spheres-to-voxels conversion
| 327
|
| Claudio Montani and Roberto Scopigno
|
| A simple method for box-sphere intersection testing
| 335
|
| James Arvo
|
3D Rendering
|
|---|
| 3d grid hashing function
| 343
|
| Brian Wyvill
|
| Backface culling
| 346
|
| Jeff Hultquist
|
| Fast dot products for shading
| 348
|
| Mark Lee
|
| Scanline depth gradient of a z-buffered triangle
| 361
|
| Kelvin Thompson
|
| Simulating fog and haze
| 364
|
| Andrew S. Glassner
|
| Interpretation of texture map indices
| 366
|
| Andrew S. Glassner
|
| Multidimensional sum tables
| 376
|
| Andrew S. Glassner
|
Ray Tracing
|
|---|
| A simple ray rejection test
| 385
|
| Jack Ritter
|
| Intersection of a ray with a sphere
| 388
|
| Jeff Hultquist
|
| An efficient ray-polygon intersection
| 390
|
| Didier Badouel
|
| Fast ray-polygon intersection
| 394
|
| Andrew Woo
|
| Fast ray-box intersection
| 395
|
| Andrew Woo
|
| Shadow attenuation for ray tracing transparent objects
| 397
|
| Andrew Pearce
|
Numerical and programming techniques
|
|---|
| Cubic and quartic roots
| 404
|
| Jochen Schwarze
|
| A Bézier curve-based root-finder
| 408
|
| Philip J. Schneider
|
| Using Sturm sequences to bracket real roots of polynomial equations
| 416
|
| D.G. Hook & P. R. McAree
| A high speed, low precision square root
| 424
| | Paul Lalonde & Robert Dawson
| | A fast approximation to the hypotenuse
| 427
| | Alan W. Paeth
| | A fast approximation to 3d euclidian distance
| 432
| | Jack Ritter
| | Full-precision constants
| 434
| | Kelvin Thompson
| | Converting between bits and digits
| 435
| | Kelvin Thompson
| | Storage-free swaping
| 436
| | Brian Wyvill
| | Generating random integers
| 438
| | Andrew S. Glassner
| | Fast 2d-3d rotation
| 440
| | Jack Ritter
| | Bit patterns for encoding angles
| 442
| | Ken Shoemake
| | Bit interleaving for quad- or octrees
| 443
| | Clifford A. Shaffer
| | A fast HSL-to-RGB transform
| 448
| | Ken Fishkin
|
Matrix techniques
|
|---|
| Matrix identities
| 453
| | Kelvin Thompson
| | Transforming axes
| 456
| | Kelvin Thompson
| | Fast Matrix Multiplication
| 460
| | Kelvin Thompson
| | A virtual trackball
| 462
| | Jeff Hultquist
| | Matrix orthogonalisation
| 464
| | Eric Raible
| | Rotation tools
| 465
| | Michael E. Pique
| | Matrix inversion
| 470
| | Richard Carling
| | Matrices and transformations
| 472
| | Ronald Goldman
| | Efficient post-concatenation of transformation matrices
| 476
| | Joseph M. Cychosz
|
Modeling and Transformations
|
|---|
| Transformation identities
| 485
| | Ned Greene
| | Fixed-point trigonometry with cordic iterations
| 494
| | Ken Turkowski
| | Using quaternions for coding 3d transformations
| 498
| | Patrick-Gilles Maillot
| | 3d viewing and rotation using orthonormal bases
| 516
| | Steve Cunningham
| | The use of coordinate frames in computer graphics
| 522
| | Ken Turkowski
| | Forms, vectors and transforms
| 533
| | Bob Wallis
| | Properties of surface-normal transformations
| 539
| | Ken Turkowski
| | Transforming axis-aligned bounding boxes
| 548
| | James Arvo
| | Defining surfaces from sampled data
| 552
| | Mark Hall
| | Defining surfaces from contour data
| 558
| | Mark Hall
| | Computing surface normals for 3d models
| 562
| | Andrew S. Glassner
| | Calculations of reference frames along a space curve
| 567
| | Jules Bloomenthal
|
Curves and surfaces
|
|---|
| Planar cubic curves
| 575
| | Andrew S. Glassner
| | Explicit cubic spline interpolation formulas
| 579
| | Richard Rasala
| | Fast spline drawing
| 585
| | Julian Gomez
| | Some properties of Bézier curves
| 587
| | Ronald Goldman
| | Tutorial on forward differencing
| 594
| | Bob Wallis
| | Integration of Bernstein basis function
| 604
| | Ronald Goldman
| | Solving the nearest-point-on-curve problem
| 607
| | Philip J. Schneider
| | An algorithm for automatically fitting digitized curves
| 612
| | Philip J. Schneider
| |