Contents
A Survey of Computer
Graphics
Computer-Aided Design
Presentation Graphics
Computer Art
Entertainment
Education and Training
Visualization
Image Processing
Graphical User Interfaces
Overview of Graphics
Systems
Video Display Devices
Refresh Cathode-Ray Tubes
Raster-Scan Displays
Random-Scan Displays
Color CRT Monitors
Direct-View Storage Tubes
Flat-Panel Displays
Three-Dimensional Viewing Devices
Stereoscopic and Virtual-Reality
Systems
Raster-Scan Systems
Video Controller
Raster-Scan Display Processor
Random-Scan Systems
Graphics Monitors and Workstations
Input Devices
Keyboards
Mouse
Trackball and Spaceball
Joysticks
Data Glove
Digitizers
Image Scanners
Touch Panels
Light Pens
Voice Systems
Hard-Copy Devices
Graphics Software
Coordinate Representations
Graphics Functions
Software Standards
PHIGS Workstations
Summary
References
Exercises
Output Primitives
Points and Lines
Line-Drawing Algorithms
DDA Algorithm
Bresenham's Line Algorithm
Parallel Line Algorithms
Loading the Frame Buffer
Line Function
Circle-Generating Algorithms
Properties of Circles
Midpoint Circle Algorithm
Ellipse-Generating Algorithms
Properties of EUipses
Midpoint EUipse Algorithm
OtherCurves
Conic Sections
Polynomials and Spline Curves
Parallet Curve Algorithms
Curve Functions
Pixel Addressing
and Object Geometry
Screen Grid Coordinates
Maintaining Geometric Properties
of Displayed Objects
1Filled-AreaPrimitives
Scan-Line Polygon Fill Algorithm
Inside-Outside Tests
Scan-Lihe Fill of Curved Boundary
Areas
Boundary-FiII Algorithm
Flood-Fill Algorithm
Fill-Area Functions
CellArray
Character Generation
Summary
Applications
References
Exercises
Attributes of Output
Primitives
Line Attributes
LineType
Line Width
Pen and Brush Options
Line Color
Curve Attributes
Color and Grayscale Levels
ColorTables
Grayscale
Area-Fill Attributes
Fill Styles
Pattem Fill
SoftFill
Character Attributes
Text Attributes
Marker Attributes
Bundled Attributes
Bundled Line Attributes
Bundled Area-Fill Attributes
Bundled Text Attributes
Bundled Marker Attributes
Inquiry Functions
Antialiasing
Supersampling Straight Line
Segments
Pixel-Weighting Masks
Area Sampling Straight Line
Segments
Filtering Techniques
Pixel Phasing
Compensating for Line Intensity
Differences
Antialiasing Area Boundaries
Summary
References
Exercises
Affine Transformations
Transformation Functions
Raster Methods for Transformations
Summary
References
Exercises
Two-Dimensional Viewing
Basic Transformations
Translation
Rotation
Scaline
Two-Dimensional Geometric
Transformations
Basic Transformations
Translation
Rotation
Scaling
Matrix Representations
and Homogeneous Coordinates
Composite Transformations
Translations
Rotations
Scalings
General Pivot-Point Rotation
General Fixed-Point Scaling
General Scaling Directions
Concatenation Properties
General Composite Transformations
and Computational Effidency
Other Transformations
Reflection
Shear
Transformations Between Coordinate
Systems
The Viewing Pipeline
Viewing Coordinate Reference Frame
Window-to-Viewport Coordinate
Transformation
Two-Dimensional Viewing Functions
Clipping Operations
Point Clipping
Line Clipping
Cohen-Sutheriand Line Clipping
Liang-Barsky Line Clipping
Nicholl-Lee-Nicholl Line Clipping
Line Clipping Using Nonrectangular
Clip Windows
Splitting Concave Polygons
Polygon Clipping
Sutherland-Hodgeman Polygon
Clipping
Weiler-Atherton Polygon Clipping
Other Polygon-Clipping Algorithms
CurveClipping
TextClipping
Exterior Clipping
Summary
References
Exercises
Structures and Hierarchical
Modeling
Structure Cohcepts
Basic Structure Functions
Setting Structure Attributes
Editing Structures
Structure Lists and the Element
Pointer
Setting the Edit Mode
Inserting Structure Elements
Repladng Structure Elements
Deleting Structure Elements
Labeling Structure Elements
Copying Elements from One Structure
to Another
Basic Modeling Concepts
Model Representations
Symbol Hierarchies
Modeling Packages
Hierarchical Modeling
with Structures
Local Coordinates and Modeling
Transfonnations
Modeling Transformations
Structure Hierarchies
Summary
References
Exercises
Graphical User Interfaces
and Interactive Input
Methods
The User Dialogue
Windows and Icons
Accommodatmg Multiple
Skill Levels
Consistency
Mininuzing Memorization
Backup and Error Handling
Feedback
Input of Graphical Data
Logical Classification of Input
Devices
Locator Devices
Stroke Devices
String Devices
Valuator Devices
Choice Devices
Pick Devices
Input Functions
Input Modes
Request Mode
Locator and Stroke Input
in Request Mode
String Input in Request Mode
Valuator Input in Request Mode
Choice Input in Request Mode
Pick Input in Request Mode
Sample Mode
Event Mode
Concurrent Use of Input Modes
Initial Values for Input-Device
Parameters
Interactive Picture-Construction
Techniques
Basic Positioning Methods
Constraints
Grids
Gravity Field
Rubber-Band Methods
Dragging
Painting and Drawing
Virtual-Reality Environments
Summary
References
Exercises
Three-Dimensional Concepts
Three-Dimensional
Display Methods
Parallel Projection
Perspective Projection
Depth Cueing
Visible Line and Surface
Identification
Surface Rendering
Exploded and Cutaway Views
Three-Dimensional and Stereoscopic
Views
Three-Dimensional Graphics
Packages
Three-Dimensional Object
Representations
Polygon Surfaces
Polygon Tables
Plane Equations
Polygon Meshes
Curved Lines and Surfaces
Quadric Surfaces
Sphere
Ellipsoid
Torus
Superquadrics
Superellipse
SupereUipsoid
Blobby Objects
SplineRepresentations
Interpolatioh and Approximation
Splines
Parametric Continuity
Conditions
Geometric Continuity
Conditions
Spline Specifications
Cubic Spline Interpolation
Methods
Natural Cubic Splines
Hermite Interpolation
Cardinal Splines
Kochanek-Bartels Splines
Bezier Curves and Surfaces
Bezier Curves
Properties of Bezier Curves
Design Techniques Using Bezier
Curves
Cubic Bezier Curves
Bezier Surfaces
B-Spline Curves and Surfaces
B-Spline Curves
Uniform, Periodic B-Splines
Cubic, Periodic B-Splines
Open, Uniform B-Splines
Nonuniform B-Splines
B-Spline Surfaces
Beta-Splines
Beta-Spline Continuity
Conditions
Cubic, Periodic Beta-Spline
Matrix Representation
Rational Splines
Conversion Between Spline
Representations
Displaying Spline Curves
and Surfaces
Homer's Rule
Forward-Difference Calculations
Subdivision Methods
Sweep Representations
Constructive Solid-Geometry
Methods
Octrees
BSP Trees
Fractal-Geometry Methods
Fractal-Generation Procedures
Classification of Fractals
Fractal Dimension
Geometric Construction
of Deterministic Self-Similar
Fractals
Geometric Construcfion
of Statistically Self-Similar
Fractals
Affine Fractal-Construction
Methods
Random Midpoint-Displacement
Methods
Controlling Terrain Topography
Self-Squaring Fractals
Self-Inverse Fractals
Shape Grammars and Other
Procedural Methods
Particle Systems
Physically Based Modeling
Visualization of Data Sets
Visual Representations
for Scalar Pields
Visual Representations
for Vector Fields
Visual Representations
for Tensor Fields
Three-Dimensional Geometric and Modeling Transformations
Visual Representations
for Multivariate Data Fields
Summary
References
Exercises
Translation
Rotation
Coordinate-Axes Rotations
General Three-Dimensional
Rotations
Rotations with Quatemions
Scaling
Other Transformations
ReQections
Shears
Composite Transformations
Three-Dimensional Transformation Functions
Modeling and Coordinate
Transformations
Summary
References
Exercises
Three-Dimensional
Viewing
Viewing Pipeline
Viewing Coordinates
Specifying the View Plane
Transformation from World
to Viewing Coordinates
Projections
Parallel Projections
Perspective Projections
View Volumes and General
Projection Transformations
General Parallel-ProJection
Transformations
General Perspective-Projection
Transformations
Clipping
Normalized View Volumes
Viewport Clipping
Clipping in Homogeneous
Coordinates
Hardware Implementations
Three-Dimensional Viewing
Functions
Summary
References
Exercises
Wireframe Methods
Visibility-Detection Functions Summary
References
Exercises
Exerciseslllumination Models and Surface-Rendering Methods
Light Sources Basic
lll umination Models Ambient Visible-Surface Detection Methods
Light Diffuse Reflection
Specnlar Reflection
and the Phong Model
Combined Diffuse and Specular
Reflections with Multiple Light
Classification of Visible-Surface
Detection Algorithms
Back-Face Detection
Depth-Buffer Method
A-Buffer Method
Scan-Line Method
Depth-Sorting Method
BSP-Tree Method
Area-Subdivision Method
Octree Methods
Ray-Casting Method
Curved Surfaces
Curved-Surface Representations
Surface Contour Plots
Fast Phong Shading
Ray-Tracing Methods
Basic Ray-Tracing Algorithm
Ray-Surface Intersection
Calculations
Reducing Object-Intersection
Calculations
Space-Subdivision Methods
Antialiased Ray Tradng
Distributed RayTradng
Radiosity Lighting Model
Basic Radiosity Model
Progressive Refinement
Radiosity Method
Environment Mapping
Adding Surface Detail
Modeling Surface Detail
with Polygons
Texture Mapping
Procedural Texturing
Methods
Bump Mapping
Frame Mapping
Summary
References
Exercises
Color Models and Color Applications
Properties of Light
Standard Primaries and the
Chromaticity Diagram
XYZColorModel
CIE Chromaticity Diagram
Intuitive Color Concepts
RGB Color Model
YIQ Color Model
Mathematics for Computer
Graphics
Coordinate-Reference Frames
Two-Dimensional Cartesian
Reference Frames
Polar Coordinates in the xy Plane
Three-Dimensional Cartesian
Reference Frames
Three-Dimensional Curvilinear
Coordinate Systems
Solid Angle
Points and Vectors
Vector Addition and Scalar
Multiplication
Scalar Product of Two Vectors
Vector Product of Two Vectors
Basis Vectors and the Metric Tensor
Orthonormal Basis
Metric Tensor
Matrices
Scalar Multiplication and Matrix
Addition
Matrix Multiplication
Matrix Transpose
Determinant of a Matrix
Matrix Inverse
Complex Numbers
Quaternions
Nonparametric Representations
arametric Representations
Numerical Methods
Solving Sets of Linear Equations
Finding Roots of Nonlinear
Equations
Evaluating Integrals
Fitting Curves to Data Sets
BIBLIOGRAPHY
INDEX