图书目录

Ŀ¼

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