Interactive Computer Graphics
A Top-Down Approach with OpenGL, with OpenGL Primer Package
Edward Angel(Author)
Pearson (Publisher)
2nd Edition
Published on 18. September 2001
Book
Hardback
842 pages
978-0-201-74892-5 (ISBN)
Article exhausted; check for reprint
Description
This primer provides an introduction to OpenGL version 1.2 that should prove useful to students on a graphics course that requires programming using OpenGL. In this book, Edward Angel presents the commands, provides examples and discusses common beginners' pitfalls when talking about: two-dimensional programs; interaction and animation; three-dimensional programs; transformations; lights and materials; bits and pixels; texture mapping; curves and surfaces; as well as some advanced features. It presents a non-mathematical treatment of OpenGL, with an approach that gets students using OpenGL quickly. This book features a top-down, programming-oriented approach to computer graphics. Capitalizing upon this top-down and hands-on approach, the text quickly gets students writing 3D graphics programs. Angel uses OpenGL, a graphics library supported by most workstations, and the C programming language (which, like OpenGL, is not object-oriented), making students aware of what is happening at the lowest levels of computer-graphics programming.
Each chapter is built around an application, with key principles and techniques explained as needed and in increasing detail, teaching students by example and by practice. While emphasizing applications programming, the book covers all topics required for a fundamental course in computer graphics, such as light-material interactions, shading, modelling, curves and surfaces, antialiasing, texture mapping and compositing, as well as hardware issues. The top-down approach taken in this book enables students of computer science and engineering to generate complex interactive applications by the end of their first course, and should provide them with a solid background for future work or study in computer graphics.
Each chapter is built around an application, with key principles and techniques explained as needed and in increasing detail, teaching students by example and by practice. While emphasizing applications programming, the book covers all topics required for a fundamental course in computer graphics, such as light-material interactions, shading, modelling, curves and surfaces, antialiasing, texture mapping and compositing, as well as hardware issues. The top-down approach taken in this book enables students of computer science and engineering to generate complex interactive applications by the end of their first course, and should provide them with a solid background for future work or study in computer graphics.
More details
Edition
2nd edition
Language
English
Place of publication
United States
Publishing group
Pearson Education (US)
Target group
College/higher education
Dimensions
Width: 243 mm
Thickness: 40 mm
Weight
1659 gr
ISBN-13
978-0-201-74892-5 (9780201748925)
Copyright in bibliographic data is held by Nielsen Book Services Limited or its licensors: all rights reserved.
Schweitzer Classification
Other editions
New editions

Book
08/2002
3rd Edition
Pearson
€81.89
Article exhausted; check for reprint
Content
(Of both books in the package.)
OpenGL: A Primer:
Preface.1. Getting Started.
The OpenGL API.
Three Views of OpenGL.
OpenGL Functions.
OpenGL Versions of Extensions.
Languages.
Programming Conventions.
Compiling.
Sources.
Who Should Use this Primer.
Outline.
2. Two-Dimensional Programming in OpenGL.
A Simple Program
GLUT.
Event Loops and Callback Functions.
Drawing a Rectangle.
Changing the GLUT Defaults.
Color in OpenGL.
Coordinate System Differences Between BLUT and OpenGL.
Two-Dimensional Viewing.
Coordinate Systems and Transformations.
Second Version of a Simple Program.
Primitives and Attributes.
Polygon Types.
Color Interpolation.
Text.
Inquires and Errors.
Saving the State.
3. Interaction and Animation.
The Reshape Callback.
The Idle Callback.
A Rotating Square.
Double Buffering.
Using the Keyboard.
Using the Mouse Callback.
Mouse Motion.
Menus.
The NULL Callback.
Subwindows and Multiple Windows.
Example: single_double.c.
Display Lists.
Picking and Selection Mode.
4. Basic Three-Dimensional Programming.
Cameras and Objects.
Orthographic Projects in OpenGL.
Viewing a Cube.
Locating the Camera.
Building Objects.
Hidden-Surface Removal.
GLU and FLUT Objects.
Perspective Projects.
5. Transformations.
Line-Preserving Transformations.
Homogeneous Coordinates.
The Model-View and Projection Transformations.
Translation.
Rotation.
Scaling.
Setting Matrices Directly.
Transformations and Coordinate Systems
Modeling with Transformations.
6. Lights and Materials.
Light/Material Interactions.
The Phong Model.
OpenGL Lighting.
Specifying a Light Source.
Specifying a Material
Controlling the Lighting Calculation.
Smooth Shading.
Working with Normals.
Transparency.
7. Images.
Pixels and Bitmaps.
Drawing Modes.
Reading and Writing Pixels.
Selecting Buffers.
Pixel Store Modes.
Displaying a PPM Image.
Using Luminance.
Pixel Mapping.
Pixel Zoom.
Imaging Processing in OpenGL.
8. Texture Mapping.
Texels and Textures?
Constructing a Texture Map.
Texture Coordinates.
Texture Parameters.
A Rotating Cube with Texture.
Applying Textures to Surfaces.
Borders and Sizing.
Mipmaps.
Automatic Texture Coordinate Generation.
Texture Objects.
Texture Maps for Image Manipulation.
9. Curves and Surfaces.
Parametric Curves.
Parametric Surfaces.
Bezier Curves and Surfaces.
One-Dimensional OpenGL Evaluators.
Two-Dimensional Evaluators.
An Interactive Example.
Other Types of Cures.
The Utah Teapot.
Normals and Shading.
10. Putting It Together and Moving On.
A Demo Program.
Other OpenGL Features.
Buffers.
Writing Portable, Efficient, Robust Code.
Index.Interactive Computer Graphics, 2e:
Graphics Systems and Models.
Applications of Computer Graphics.
A Graphics System.
Images: Physical and Synthetic.
The Human Visual System.
The Pinhole Camera.
The Synthetic-Camera Model.
The Programmer's Interface.
Graphics Architectures.
Graphics Programming.
The Sierpinski Gasket.
The OpenGL API.
Primitives and Attributes.
Color.
Viewing.
Control Functions.
The Gasket Program.
Polygons and Recursion.
The Three-Dimensional Gasket.
Input and Interaction.
Interaction.
Input Devices.
Clients and Servers.
Display Lists.
Programming Event-Driven Input.
Menus.
Picking.
A Simple Paint Program.
Animating Interactive Programs.
Design of Interactive Programs.
Geometric Objects and Transformations.
Scalars, Points, and Vectors.
Three-Dimensional Primitives.
Coordinate Systems and Frames.
Modeling a Colored Cube.
Affine Transformations.
Rotation, Translation, and Scaling.
Transformations in Homogeneous Coordinates.
Concatenation of Transformations.
OpenGL Transformation Matrices.
Interfaces to Three-Dimensional Applications.
Viewing.
Classical and Computer Viewing.
Positioning of the Camera.
Simple Projections.
Projections in OpenGL.
Hidden-Surface Removal.
Walking Through a Scene.
Parallel-Projection Matrices.
Perspective-Projection Matrices.
Projections and Shadows.
Shading.
Light and Matter.
Light Sources.
The Phong Reflection Model.
Computation of Vectors.
Polygonal Shading.
Approximation of a Sphere by Recursive Subdivision.
Light Sources in OpenGL.
Specification of Materials in OpenGL.
Shading of the Sphere Model.
Global Rendering.
Implementation of a Renderer.
Four Major Tasks.
Implementation of Transformations.
Line-Segment Clipping.
Polygon Clipping.
Clipping of Other Primitives.
Clipping in Three Dimensions.
Hidden-Surface Removal.
Scan Conversion.
Bresenham's Algorithm.
Scan Conversion of Polygons.
Antialiasing.
Display Considerations.
Hierarchical and Object-Oriented Graphics.
Symbols and Instances.
Hierarchical Models.
A Robot Arm.
Trees and Traversal.
Use of Tree Data Structures.
Animation.
Graphical Objects.
Scene Graphs.
Other Tree Structures.
Graphics and the Web.
Discrete Techniques.
Buffers and Mappings.
Texture Mapping.
Environmental Maps.
Bump Maps.
Writes into Buffers.
Bit and Pixel Operations in OpenGL.
Compositing Techniques.
Use of the Accumulation Buffer.
Sampling and Aliasing.
Curves and Surfaces.
Representation of Curves and Surfaces.
Design Criteria.
Parametric Cubic Polynomial Curves.
Interpolation.
Hermite Curves and Surfaces.
Bezier Curves and Surfaces.
Cubic B-Splines.
General B-Splines.
Rendering of Curves and Surfaces.
The Utah Teapot.
Algebraic Surfaces.
Curves and Surfaces in OpenGL.
Procedural Methods.
Reasons for Using Procedural Models.
Physically-Based Models and Particle Systems.
Newtonian Particles.
Solving Particle Systems.
Constraints.
Language-Based Models.
Recursive Methods and Fractals.
The Mandelbrot Set.
Visualization.
Data + Geometry.
Height Fields and Contours.
Visualizing Surfaces and Scalar Fields.
Isosurfaces and Marching Cubes.
Direct Volume Rendering.
Vector-Field Visualization.
Tensor Visualization.
Appendix A: Sample Programs.
Sierpinski Gasket Program.
Recursive Generation of Sieroinski Gasket.
Three-Dimensional Sierpinski Gasket.
Recursive Three-Dimensional Sierpinski Gasket.
Square Drawing Program.
Paint Program.
Double Buffering Example.
Rotating-Cube Program.
Rotating Cube Using Vertex Arrays.
Rotating Cube with Trackball.
Moving Viewer.
Sphere Program.
Appendix B: Spaces.
Scalars.
Vector Spaces.
Affine Spaces.
Euclidean Spaces.
Projections.
Gram-Schmidt Orthogonalization.
Suggested Readings.
Appendix C: Matrices.
Definitions.
Matrix Operations.
Row and Column Matrices.
Rank.
Change of Representation.
The Cross Product.
Suggested Readings.
OpenGL: A Primer:
Preface.1. Getting Started.
The OpenGL API.
Three Views of OpenGL.
OpenGL Functions.
OpenGL Versions of Extensions.
Languages.
Programming Conventions.
Compiling.
Sources.
Who Should Use this Primer.
Outline.
2. Two-Dimensional Programming in OpenGL.
A Simple Program
GLUT.
Event Loops and Callback Functions.
Drawing a Rectangle.
Changing the GLUT Defaults.
Color in OpenGL.
Coordinate System Differences Between BLUT and OpenGL.
Two-Dimensional Viewing.
Coordinate Systems and Transformations.
Second Version of a Simple Program.
Primitives and Attributes.
Polygon Types.
Color Interpolation.
Text.
Inquires and Errors.
Saving the State.
3. Interaction and Animation.
The Reshape Callback.
The Idle Callback.
A Rotating Square.
Double Buffering.
Using the Keyboard.
Using the Mouse Callback.
Mouse Motion.
Menus.
The NULL Callback.
Subwindows and Multiple Windows.
Example: single_double.c.
Display Lists.
Picking and Selection Mode.
4. Basic Three-Dimensional Programming.
Cameras and Objects.
Orthographic Projects in OpenGL.
Viewing a Cube.
Locating the Camera.
Building Objects.
Hidden-Surface Removal.
GLU and FLUT Objects.
Perspective Projects.
5. Transformations.
Line-Preserving Transformations.
Homogeneous Coordinates.
The Model-View and Projection Transformations.
Translation.
Rotation.
Scaling.
Setting Matrices Directly.
Transformations and Coordinate Systems
Modeling with Transformations.
6. Lights and Materials.
Light/Material Interactions.
The Phong Model.
OpenGL Lighting.
Specifying a Light Source.
Specifying a Material
Controlling the Lighting Calculation.
Smooth Shading.
Working with Normals.
Transparency.
7. Images.
Pixels and Bitmaps.
Drawing Modes.
Reading and Writing Pixels.
Selecting Buffers.
Pixel Store Modes.
Displaying a PPM Image.
Using Luminance.
Pixel Mapping.
Pixel Zoom.
Imaging Processing in OpenGL.
8. Texture Mapping.
Texels and Textures?
Constructing a Texture Map.
Texture Coordinates.
Texture Parameters.
A Rotating Cube with Texture.
Applying Textures to Surfaces.
Borders and Sizing.
Mipmaps.
Automatic Texture Coordinate Generation.
Texture Objects.
Texture Maps for Image Manipulation.
9. Curves and Surfaces.
Parametric Curves.
Parametric Surfaces.
Bezier Curves and Surfaces.
One-Dimensional OpenGL Evaluators.
Two-Dimensional Evaluators.
An Interactive Example.
Other Types of Cures.
The Utah Teapot.
Normals and Shading.
10. Putting It Together and Moving On.
A Demo Program.
Other OpenGL Features.
Buffers.
Writing Portable, Efficient, Robust Code.
Index.Interactive Computer Graphics, 2e:
Graphics Systems and Models.
Applications of Computer Graphics.
A Graphics System.
Images: Physical and Synthetic.
The Human Visual System.
The Pinhole Camera.
The Synthetic-Camera Model.
The Programmer's Interface.
Graphics Architectures.
Graphics Programming.
The Sierpinski Gasket.
The OpenGL API.
Primitives and Attributes.
Color.
Viewing.
Control Functions.
The Gasket Program.
Polygons and Recursion.
The Three-Dimensional Gasket.
Input and Interaction.
Interaction.
Input Devices.
Clients and Servers.
Display Lists.
Programming Event-Driven Input.
Menus.
Picking.
A Simple Paint Program.
Animating Interactive Programs.
Design of Interactive Programs.
Geometric Objects and Transformations.
Scalars, Points, and Vectors.
Three-Dimensional Primitives.
Coordinate Systems and Frames.
Modeling a Colored Cube.
Affine Transformations.
Rotation, Translation, and Scaling.
Transformations in Homogeneous Coordinates.
Concatenation of Transformations.
OpenGL Transformation Matrices.
Interfaces to Three-Dimensional Applications.
Viewing.
Classical and Computer Viewing.
Positioning of the Camera.
Simple Projections.
Projections in OpenGL.
Hidden-Surface Removal.
Walking Through a Scene.
Parallel-Projection Matrices.
Perspective-Projection Matrices.
Projections and Shadows.
Shading.
Light and Matter.
Light Sources.
The Phong Reflection Model.
Computation of Vectors.
Polygonal Shading.
Approximation of a Sphere by Recursive Subdivision.
Light Sources in OpenGL.
Specification of Materials in OpenGL.
Shading of the Sphere Model.
Global Rendering.
Implementation of a Renderer.
Four Major Tasks.
Implementation of Transformations.
Line-Segment Clipping.
Polygon Clipping.
Clipping of Other Primitives.
Clipping in Three Dimensions.
Hidden-Surface Removal.
Scan Conversion.
Bresenham's Algorithm.
Scan Conversion of Polygons.
Antialiasing.
Display Considerations.
Hierarchical and Object-Oriented Graphics.
Symbols and Instances.
Hierarchical Models.
A Robot Arm.
Trees and Traversal.
Use of Tree Data Structures.
Animation.
Graphical Objects.
Scene Graphs.
Other Tree Structures.
Graphics and the Web.
Discrete Techniques.
Buffers and Mappings.
Texture Mapping.
Environmental Maps.
Bump Maps.
Writes into Buffers.
Bit and Pixel Operations in OpenGL.
Compositing Techniques.
Use of the Accumulation Buffer.
Sampling and Aliasing.
Curves and Surfaces.
Representation of Curves and Surfaces.
Design Criteria.
Parametric Cubic Polynomial Curves.
Interpolation.
Hermite Curves and Surfaces.
Bezier Curves and Surfaces.
Cubic B-Splines.
General B-Splines.
Rendering of Curves and Surfaces.
The Utah Teapot.
Algebraic Surfaces.
Curves and Surfaces in OpenGL.
Procedural Methods.
Reasons for Using Procedural Models.
Physically-Based Models and Particle Systems.
Newtonian Particles.
Solving Particle Systems.
Constraints.
Language-Based Models.
Recursive Methods and Fractals.
The Mandelbrot Set.
Visualization.
Data + Geometry.
Height Fields and Contours.
Visualizing Surfaces and Scalar Fields.
Isosurfaces and Marching Cubes.
Direct Volume Rendering.
Vector-Field Visualization.
Tensor Visualization.
Appendix A: Sample Programs.
Sierpinski Gasket Program.
Recursive Generation of Sieroinski Gasket.
Three-Dimensional Sierpinski Gasket.
Recursive Three-Dimensional Sierpinski Gasket.
Square Drawing Program.
Paint Program.
Double Buffering Example.
Rotating-Cube Program.
Rotating Cube Using Vertex Arrays.
Rotating Cube with Trackball.
Moving Viewer.
Sphere Program.
Appendix B: Spaces.
Scalars.
Vector Spaces.
Affine Spaces.
Euclidean Spaces.
Projections.
Gram-Schmidt Orthogonalization.
Suggested Readings.
Appendix C: Matrices.
Definitions.
Matrix Operations.
Row and Column Matrices.
Rank.
Change of Representation.
The Cross Product.
Suggested Readings.