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
| |