You are previewing Jim Blinn's Corner: Notation, Notation, Notation.
O'Reilly logo
Jim Blinn's Corner:  Notation, Notation, Notation

Book Description

The third entry in the Jim Blinn's Corner series, this is, like the others, a handy compilation of selected installments of his influential column. But here, for the first time, you get the "Director's Cut" of the articles: revised, expanded, and enhanced versions of the originals. What's changed? Improved mathematical notation, more diagrams, new solutions. What remains the same? All the things you've come to rely on: straight answers, irreverent style, and innovative thinking. This is Jim Blinn at his best—now even better.
Highlights
- Features 21 expanded and updated installments of "Jim Blinn's Corner," dating from 1995 to 2001, and never before published in book form.
- Includes "deleted scenes"—tangential explorations that didn't make it into the original columns.
- Details how Blinn represented planets in his famous JPL flyby animations.
- Explores a wide variety of other topics, from the concrete to the theoretical: assembly language optimization for parallel processors, exotic usage of C++ template instantiation, algebraic geometry, a graphical notation for tensor contraction, and his hopes for a future world.

*Features 21 expanded and updated installments of "Jim Blinn's Corner," dating from 1995 to 2001, and never before published in book form.
*Includes "deleted scenes"—tangential explorations that didn't make it into the original columns.
*Details how Blinn represented planets in his famous JPL flyby animations.
*Explores a wide variety of other topics, from the concrete to the theoretical: assembly language optimization for parallel processors, exotic usage of C++ template instantiation, algebraic geometry, a graphical notation for tensor contraction, and his hopes for a future world.

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright page
  5. Preface
    1. Acknowledgments
  6. Color Plates
  7. Chapter Zero: Notation: April 2002
    1. Mathematical Symbols
    2. Computer Languages
  8. Chapter One: How to Draw a Sphere Part I, Basic Math: January 1995
    1. Mathematical Context
    2. The Goal
    3. Second-Order Curves
    4. Second-Order Surfaces
    5. Summary
  9. Chapter Two: How to Draw a Sphere Part II, Coordinate Systems: March 1995
    1. Coordinate Systems
    2. Naming Conventions
    3. Code and Indexing Conventions
    4. The Basic Algorithm
    5. Why Space Is Scary
    6. Optimizing the Depth Transformation
    7. Milking the Perspective Transformation
    8. Another Use for Shearing
    9. The Result
  10. Chapter Three: How to Draw a Sphere Part III, The Hyperbolic Horizon: September 1995
    1. Our Story So Far
    2. My Goal
    3. Gross Clipping
    4. Inside the Renderin? Loop
    5. Range Calculations
    6. The Rendering Loop
    7. Results
    8. The Hyperbolic Horizon
    9. Saturn Returns (Mostly)
    10. Saturn Returns (Always)
    11. Summary
  11. Chapter Four: The Truth About Texture Mapping: March 1990
    1. A Trip to the Planets
    2. Virtual Memory
    3. There's a Problem with Uranus
    4. Tiles
    5. Address Generation
    6. Some Analysis
    7. Other Ideas
  12. Chapter Five: Consider the Lowly 2 × 2 Matrix: March 1996
    1. Our Friend
    2. Basic Stuff
    3. Eigen Stuff
    4. Definite Stuff
    5. A New Orientation
    6. A New Formulation
    7. Singular Value Decomposition
    8. Summary of Invariants
    9. Visualizations
    10. Square Root of a Matrix
    11. Musings
  13. Chapter Six: Calculating Screen Coverage: May 1996
    1. Review of Clip Culling
    2. The Screen Extent
    3. Putting It Together
    4. Caveat
    5. Another Caveat
    6. Summary
  14. Chapter Seven: Fugue for MMX: MARCH-APRIL 1997
    1. The Problem
    2. 8-Bit Arithmetic
    3. The MMX Implementation
    4. The Base Code
    5. Squeezing Out the Air
    6. Not So Fast
    7. Observation
  15. Chapter Eight: Floating-Point Tricks: July–August 1997
    1. IEEE Floating-Point Representation
    2. Opening the Box
    3. Other Functions
    4. Errors and Refinements
    5. Conclusion
  16. Chapter Nine: A Ghost in a Snowstorm: January-February 1998
    1. Compositing
    2. Display Gamma
    3. Linear/Nonlinear Notation
    4. The Good, the Bad, the Ugly
    5. Scenarios
    6. Error Analysis
    7. Scenario 1: (f,a) over b
    8. Scenario 2: (f,a) over b
    9. Scenario 3: (f,a) over b
    10. Scenario 4: (g,a) over b
    11. What Do We Do about This?
  17. Chapter Ten: W Pleasure, W Fun: May – June 1998
    1. Mathematical Niceties
    2. Traditional Perspective
    3. Texture Mapping
    4. W Buffering
    5. Resolution Comparisons
    6. Summary
  18. Chapter Eleven: Ten More Unsolved Problems in Computer Graphics: September-October 1998
    1. History
    2. When Is a Problem "Solved"?
    3. Ten more Unsolved Problems
    4. Get Hopping
  19. Chapter Twelve: The Cross Ratio: November-December 1998
    1. The First Ratio
    2. The Second Ratio
    3. Constancy with Changing m
    4. Constancy under Perspective
    5. Summary
  20. Chapter Thirteen: Inferring Transforms: May-June 1999
    1. Our Goal
    2. The Conventional Solution
    3. Heckbert's Improvement
    4. Olynyk's Improvement
    5. Another Interpretation
    6. Geometric Interpretations
    7. One more Thin Little mint
    8. Code
    9. Down a Dimension
    10. Up a Dimension
  21. Chapter Fourteen: How Many Different Rational Parametric Cubic Curves Are There? Part I, Inflection Points: July–August 1999
    1. Inflection Points
    2. A Useful Identity
    3. Up a Dimension
    4. Application
    5. Collinear Inflection Points
    6. The Case of the Missing Inflection Point
    7. Next Time
  22. Chapter Fifteen: How Many Different Rational Parametric Cubic Curves Are There? Part II, The “Same” Game: November-December 1999
    1. Definition
    2. “Different” Means not the Same
    3. The Game
    4. The Canonical Geometric Transform
    5. Inflection Points Revisited
    6. Back to the Game
    7. How Does the Game Affect <span xmlns="http://www.w3.org/1999/xhtml" xmlns:epub="http://www.idpf.org/2007/ops" xmlns:mml="http://www.w3.org/1998/Math/MathML" class="italic">D</span>??
    8. Winning the Game
  23. Chapter Sixteen: How Many Different Rational Parametric Cubic Curves Are There? Part III, The Catalog: March-April 2000
    1. Our Story So Far
    2. Inferring Transforms
    3. Types of Homogeneous Cubic Polynomials
    4. Generating the Catalog
  24. Chapter Seventeen: A Bright, Shiny Future: January 2000
    1. What Will Probably Happen
    2. What Do I Want to Happen?
    3. Why Do I Want Thh to Happen?
    4. A Guarantee
  25. Chapter Eighteen: Optimizing C++ Vector Expressions: July-August 2000
    1. The Goal
    2. The Basic Vector Class
    3. Version 1a: The Recommended Arithmetic Operators
    4. Testing
    5. Version 1b; Explicit Binary Operators
    6. Version 2: Returning a Sum Object
    7. Version 3: Virtual Functions
    8. Similarity between Virtual Functions and Templates
    9. Version 4a: Expression Templates
    10. Version 4b: Expression Template with Copying
    11. Version 4c: Expression Templates with Only Vector References
    12. Summary
  26. Chapter Nineteen: Polynomial Discriminants Part I, Matrix Magic: November–December 2000
    1. Discriminants
    2. A Homogeneous Matrix formulation
    3. A Kinder, Gentler Cubic Discriminant
    4. Back to Our Roots
    5. Quartics
    6. Behind the Curtain
  27. Chapter Twenty: Polynomial Discriminants Part II, Tensor Diagrams: January–February 2001
    1. 2D Homogeneous Geometry
    2. The Problem
    3. 2DH Tensor Diagrams
    4. Homogeneous Polynomials
    5. A 1DH Application: Discriminants
    6. The Invariance of Invariants
    7. A2DH Application: Tangency
    8. A2DH Application: Discriminants
    9. Relationships
    10. Notation, Notation, Notation
  28. Chapter Twenty-one: Tensor Contraction in C++: March–April 2001
    1. The Basic Objects
    2. The Basic Operation
    3. The Epsilon Routine
    4. The Polynomial Object
    5. The Term Object
    6. It Works
    7. Examples
    8. How Do I Like This?
    9. What's next
  29. Appendix
    1. Vector3
    2. Matrix33
    3. Vector4
    4. Matrix44
  30. Index
  31. About the Author