Ŀ¼
Chapter 1Introduction
Chapter 2Digital Image Fundamentals
2.1The RGBRGB and CMY Color Models
2.2Color Representation
2.3Lookup Table
2.4Display Devices
2.4.1Color Monitor
2.4.2LCD¡ªLiquid Crystal Display
2.5Printing Devices
2.5.1Halftoning
2.5.2Halftone Approximation
2.5.3Dithering
2.5.4Error Diffusion
2.6Image Files
Chapter 3The OpenGL API
3.1OpenGL Basics
3.1.1OpenGL as a State Machine
3.1.2The Graphics Pipeline Concept
3.1.3Eventª²Driven Programming
3.1.4Language Binding
3.2OpenGL Syntax and Convention
3.3Setting up OpenGL on a PC
3.4A Sample Program
3.5Visualizing the Mandelbrot and Julia Sets
3.6The Colorª²Index Mode
3.7Managing Windows
Chapter 4Scan Conversion
4.1Lines
4.1.1Direct Use of the Line Equation
4.1.2The DDA Algorithm
4.1.3Bresenham¬ðs Line Algorithm
4.2Circles
4.2.1Bresenham¬ðs Circle Algorithm
4.2.2Midpoint Circle Algorithm
4.2.3Arbitrarilyª²Centered Circles
4.3Ellipses
4.3.1Midpoint Ellipse Algorithm
4.3.2Arbitrarilyª²Centered and Rotated Ellipses
4.4Region Filling
4.4.1Defining Regions
4.4.2Boundaryª²Fill
4.4.3Floodª²Fill
4.4.4A Scanª²Line Method
4.5Characters
4.5.1Bitmap Font
4.5.2Outline Font
4.6Antialiasing
4.6.1Preª²filtering and Postª²filtering
4.6.1.1Area Sampling
4.6.1.2Super Sampling
4.6.1.3Lowpass Filtering
4.6.2Pixel Phasing
4.7OpenGL Programming
4.7.1Lineª²Based Primitives
4.7.2Polygonal Primitives
4.7.3Changing and Enabling Features
4.7.3.1Stippled Lines
4.7.3.2Fillª²Style and Orientation of Polygons
4.7.3.3Nonª²convex Polygons
4.7.4Bitmap and Stroke Characters
4.7.5Blending and Antialiasing
4.7.6Recursively Defined Drawings
4.7.6.1The Cª²Curve
4.7.6.2Koch Curve
4.7.6.3The Sierpinski Gasket
Chapter 53D Preliminaries
5.1The Polygonª²Mesh Representation
5.2Hiddenª²Surface Removal
5.2.1Backª²Face Removal
5.2.2The Zª²Buffer Method
5.3Projection
5.3.1Taxonomy of Projection
5.3.2Parallel Projection
5.3.3Perspective Projection
5.4The 3D Graphics Pipeline
5.5OpenGL Programming
5.5.1Normal Vectors
5.5.2Culling
5.5.3Zª²Buffering
5.5.4Orthographic and Perspective Projections
5.5.5Double Buffer Animation
Chapter 6Transformations
6.1Basic Transformations
6.1.1Translation
6.1.2Scaling
6.1.3Rotation
6.2Special Transformations
6.2.1Reflection
6.2.2Shearing
6.3Composite Transformation Matrix
6.4OpenGL Programming
6.4.1Modeling Transformation
6.4.2The Matrix Stacks
Chapter 7Color and Shading Models
7.1Light and Color
7.1.1Basic Characteristics of Light
7.1.2The Trichromatic Generalization Theory
7.1.3CIE XYZ Color Model
7.1.4CIE Chromaticity Diagram
7.1.5Color Gamut Mapping
7.1.6The NTSC YIQ Color Model
7.2The Phong Model
7.3Interpolative Shading Methods
7.3.1Constant Shading
7.3.2Gouraud Shading
7.3.3Phong Shading
7.4OpenGL Programming
7.4.1Defining Material Properties
7.4.2Creating Light Sources
7.4.3Controlling Light Position and Direction
7.4.4Selecting Lighting and Shading Options
7.4.4.1Lighting Options
7.4.4.2Shading Options
7.4.5Enabling Lighting
7.4.6Visualizing GLUT Objects
Chapter 8Viewing and Clipping
8.1Viewing Transformation
8.1.1Transformation to Viewing Coordinates
8.1.2Normalization Transformation
8.1.3Window to Viewport Mapping
8.2Clipping Algorithms
8.2.1Point Clipping
8.2.2Line Clipping
8.2.2.1The Cohenª²Sutherland Algorithm
8.2.2.2The Liangª²Barsky Algorithm
8.2.2.3Clipping Against an Arbitrary Plane
8.2.3Polygon Clipping
8.2.3.1The Sutherlandª²Hodgman Algorithm
8.2.3.2The Weilerª²Atherton Algorithm
8.3OpenGL Programming
8.3.1Viewing Transformation
8.3.2Additional Clipping Planes
8.3.3Terrain Generation
8.3.3.1Midpoint Displacement
8.3.3.2Brownian Distribution of Disks
Chapter 9Interaction
9.1Interactive Devices
9.1.1Physical Devices
9.1.2Logical Devices
9.2Interactive Techniques
9.3OpenGL Programming
9.3.1Keyboard Functions
9.3.2Mouse Functions
9.3.3Menus
9.3.4Editing Polygons
9.3.5Creating Revolving Objects
Chapter 10Parametric Representations
10.1Interpolation Methods for Splines
10.1.1The Natural Cubic Spline
10.1.2Hermite Interpolation
10.1.3Managing Tangent Vectors
10.1.3.1Catmullª²Rom Splines
10.1.3.2Cardinal Splines
10.1.3.3Kochanekª²Bartels Splines
10.2B¨¦zier Curves and Surfaces
10.2.1B¨¦zier Curves
10.2.2B¨¦zier Surfaces
10.3Bª²Splines
10.3.1Uniform Bª²Splines
10.3.2Open Bª²Splines
10.3.3Nonuniform Bª²Splines
10.3.4Multiple Control Points
10.3.5Bª²Spline Surfaces
10.4Rational Bª²Splines and NURBS
10.5OpenGL Programming
10.5.1B¨¦zier Curves
10.5.2B¨¦zier Surfaces
10.5.3Bª²Spline Functions
Chapter 11More on OpenGL
11.1Error Handling
11.2Query Functions
11.3Bitmaps and Pixel Operations
11.3.1Bitmaps
11.3.2Reading and Writing Pixels
11.3.3Logical Operations
11.4GLU Quadrics
11.5Texture Mapping
11.5.1Concept and Formulation
11.5.2OpenGL Implementation
11.5.3Texture Coordinates for Parametric Surfaces
11.6Depth Cuing
11.7Stencil Buffer
11.8Accumulation Buffer
Chapter 12Beyond the Graphics Pipeline
12.1Ray Tracing
12.1.1The Pinhole Camera
12.1.2A Recursive Rayª²Tracer
12.1.3Parametric Vector Representation of a Ray
12.1.4Rayª²Surface Intersection
12.1.4.1Coordinate System Planes
12.1.4.2Arbitrary Planes
12.1.4.3Spheres
12.1.4.4General Implicit Surfaces
12.1.5Techniques for Improving Efficiency
12.1.5.1Adaptive Depth Control
12.1.5.2Bounding Volume Extension
12.1.5.3Spatial Subdivision
12.1.6Antialiasing
12.1.7Procedurally Defined Solid Texture
12.1.8Additional Visual Effects
12.2The Radiosity Method
12.2.1Basic Formulation
12.2.2Form Factors
12.2.3Progressive Refinement
12.3The Rendering Equation
Appendix 1OpenGL Functions
Appendix 2Vectors
Appendix 3Matrices
Appendix 4Answers
Color Plates
References
IndexColor Plates
