Your textbook…

Computer Graphics: Programming in OpenGL for Visual Communication

By Steve Cunningham

ISBN-10: 0-13-145254-1

ISBN-13: 978-0-13-145254-1What's this?

Published by Prentice Hall

Pub. Date: Dec 20, 2006

Format: Cloth

Table of Contents

 

Preface

• What is Computer Graphics?

• What is a Graphics API?

• Why do Computer Graphics?

• Overview of the Book

 

Getting Started

• Visual Communication and Computer Graphics

 

• General Issues in Visual Communication

- Use appropriate representation for your information

- Keep your images focused

- Use appropriate presentation levels for your information

- Use appropriate forms for your information

- Be very careful to be accurate with your display

- Understand and respect the cultural context of your audience

- Make your interactions reflect familiar and comfortable relationships between action and effect

 

• 3D Geometry and the Geometry Pipeline

- The scene and the view

- 3D model coordinate systems

- 3D world coordinate system

- 3D eye coordinate system

- Projections

- Clipping

- Choosing perspective or orthogonal projections

- 2D eye coordinates

- 2D screen coordinates

 

• Appearance

- Color

- Texture mapping

- Depth buffering

 

• The Viewing Process

- Different implementation, same result

 

• Graphics cards

 

• A Basic OpenGL Program

- The structure of the main() function in OpenGL

- Model space

- Modeling transformation

- 3D world space

- Viewing transformation

- 3D eye space

- Projections

- 2D eye space

- 2D screen space

- The science in the program

- Appearance

- Another way to see the program

 

• OpenGL Extensions

• Summary

• OpenGL glossary for the chapter

• Questions

• Exercises

• Experiments

 

Chapter 1: Viewing and Projection

• Introduction

 

• Fundamental Model of Viewing

 

• Definitions

- Setting up the viewing environment

- Defining the projection

- View volumes

- The orthogonal projection

- The perspective projection

- Calculating the perspective transformation

- Clipping on the view volume

- Defining the window and viewport

 

• Some Aspects of Managing the View

- Hidden surfaces

- Double buffering

 

• Stereo Viewing

 

• Viewing and Visual Communication

 

• Implementation of Viewing and Projection in OpenGL

- Defining a window and viewport

- Reshaping the window

- Defining a viewing environment

- Defining a perspective projection

- Defining an orthogonal projection

- Managing hidden surface viewing

- Setting double buffering

 

• Implementing a Stereo View

 

• Summary

• OpenGL glossary for this chapter

• Questions

• Exercises

• Experiments

 

Chapter 2: Principles of Modeling

Simple Geometric Modeling

• Introduction

 

• Definitions

 

• Some examples

- Point and points

- Line segments

- Sequence of line segments

- Triangle

- Sequence of triangles

- Quadrilateral

- Sequence of quads

- General polygon

- Polyhedron

- Aliasing and antialiasing

- Normals

- Clipping

- Data structures to hold objects

- Modeling surfaces

- Additional sources of graphic objects

- Modeling behavior

- A word to the wise

 

Transformations and modeling

• Introduction

 

• Definitions

- Transformations

- Composite transformations

- Using transformation stacks

- Compiling geometry

 

• An Example

 

• A Word to the Wise

 

Modeling for Visual Communication

• Recognizing the Meaning of Shapes

 

• Dimensions

 

• Higher Dimensions

 

• Legends and Labels

 

• Accuracy

 

Scene graphs and modeling graphs

• Introduction

 

• A Brief Summary of Scene Graphs

- Clipping in the scene graph

- An example of modeling with a scene graph

 

• The Viewing Transformation

 

• The Scene Graph and Depth Testing

 

• Using the Modeling Graph for Coding

- Two examples of coding from scene graphs

- Using standard objects to create more complex scenes

 

• Summary

• Questions

• Exercises

• Experiments

• Projects

 

Chapter 3: Implementing Modeling in OpenGL

• The OpenGL Model for Specifying Geometry

- Point and points mode

- Line segments

- Line strips

- Line loops

- Triangle

- Sequence of triangles

- Quads

- Quad strips

- General polygon

- Vertex arrays

- Antialiasing

- The cube we will use in many examples

- Defining clipping planes

 

• Additional Objects with the OpenGL Toolkits

- GLU quadric objects

- GLU cylinder

- GLU disk

- GLU sphere

- The GLUT objects

- An example

 

• A word to the wise

 

• Transformations in OpenGL

 

• Legends and Labels

 

• Code examples for transformations

- Simple transformations

- Transformation stacks

- Inverting the eyepoint transformation

- Creating display lists

 

• Summary

• OpenGL glossary for this chapter

• Questions

• Exercises

• Experiments

• Projects

 

Chapter 4: Mathematics for Modeling

• Coordinate systems

 

• Quadrants and octants

 

• Points, lines, and line segments

 

• Line segments, rays, and parametric curves and surfaces

 

• Distance from a point to a line

 

• Vectors

 

• Dot and cross products of vectors

 

• Reflection vectors

 

• Transformations

 

• Planes and half-spaces

 

• Distance from a point to a plane

 

• Polygons and convexity

 

• Polyhedra

 

• Polar, cylindrical, and spherical coordinates

 

• Collision detection

 

• Higher dimensions?

 

• Summary

• Questions

• Exercises

• Experiments

 

Chapter 5: Color and Blending

• Introduction

 

• Principles

- Specifying colors for geometry

- The RGB cube

- Luminance and color deficiency

- Other color models

- Color depth

- Color gamut

- Color blending with the alpha channel

- Modeling transparency with blending

- Indexed color

 

• Color and visual communication

- Emphasis colors

- Background colors

- Naturalistic color

- Pseudocolor and color ramps

- Building color ramps

- Using color ramps

- Comparing shape and color codings

- Cultural context of the audience

 

• Some examples

- An object with partially transparent faces

 

• Color in OpenGL

- Specifying colors

- Enabling blending

 

• A word to the wise

 

• Code examples

- A model with parts having a full spectrum of colors

- The HSV cone

- The HLS double cone

- An object with partially transparent faces

- Indexed color

- Color ramps in OpenGL

 

• Summary

• OpenGL glossary for this chapter

• Questions

• Exercises

• Experiments

• Projects

 

Chapter 6: Lighting and Shading

Lighting

• Definitions

- Ambient, diffuse, and specular light

- Surface normals

 

Materials

 

Light properties

• Light color

 

• Positional lights

 

• Spotlights

 

• Attenuation

 

• Directional lights

 

• Positional and moving lights

 

• Using lights for effect

 

• Lights in scene graphs

 

Shading

• Shading considerations for visual communication

• Definitions

• Examples of flat and smooth shading

• Calculating per-vertex normals

- Averaging polygon normals

- Analytic computations

• Other shading models

• Anisotropic shading

- Vertex and pixel shaders

 

Global Illumination

• Radiosity

• Photon mapping

 

Local Illumination and OpenGL

• Lights and materials in OpenGL

- Specifying and defining lights

- Selectively choosing lights

- Defining materials

- Using GLU quadric objects

- An example: lights of all three primary colors applied to a white surface

- Code for the example

- Shading example

 

• A word to the wise

 

• Summary

• OpenGL glossary for this chapter

• Questions

• Exercises

• Experiments

• Projects

 

Chapter 7: Event Handling

• Definitions

 

• Some Examples of Events

- keypress events

- mouse events

- menu events

- window events

- system events

- software events

• The Vocabulary of Interaction

 

• Object Selection

 

• Interaction and Visual Communication

 

• Events and the Scene Graph

 

• A Word to the Wise

 

• Events in OpenGL

 

• Callback Registering

 

• Some Details

- Creating and manipulating menus

 

• Code Examples

- Idle event callback

- Timer callback

- Keyboard callback

- Menu callback

- Mouse callback for mouse motion

- Mouse callback for object picking

 

• Details on Picking

- Definitions

- Making picking work

- The pick matrix

- Using the back buffer to do picking

- A selection example

- A summary of picking

 

The MUI (Micro User Interface) Facility

 

• Introduction

 

• Using the MUI Functionality

 

• The MUI Interface Objects

- Menu bars

- Buttons

- Radio buttons

- Text boxes

- Horizontal sliders

- Vertical sliders

- Text labels

 

• An example

 

• Installing MUI for Windows Systems

 

• A word to the wise

 

• Summary

• OpenGL glossary for this chapter

• Questions

• Exercises

• Experiments

• Projects

 

Chapter 8: Texture Mapping

• Introduction

 

• Definitions

- 1D texture maps

- 2D texture maps

- 3D texture maps

- Associating a vertex with a texture point

- The relation between the color of the object and the color of the texture map

- Other meanings for texture maps

- Texture mapping in the scene graph

 

• Creating a Texture Map

- Creating a texture map from an image

- Generating a synthetic texture map

- Noise functions as texture maps

 

• Texture Mapping and Billboards

 

• Including multiple textures in one texture map

 

• Interpolation for Texture Maps

 

• Antialiasing in Texturing

 

• MIP Mapping

 

• Multitexturing

 

• Texture Mapping in OpenGL

- Associating vertices and texture points

- Capturing a texture from the screen

- Texture environment

- Texture parameters

- Getting and defining a texture map

- Texture coordinate control

- Texture interpolation

- Texture mapping and GLU quadrics

- Multitextures

 

• Some Examples

- The Chromadepth™ process

- Using 2D texture maps to add interest to a surface

- Environment maps

 

• A Word to the Wise

 

• Code Examples

- A 1D color ramp

- An environment map

- Using multitextures

 

• Summary

• OpenGL glossary for this chapter

• Questions

• Exercises

• Experiments

• Projects

 

Chapter 9: Graphical Problem Solving in Science

• Introduction

 

• Examples

 

• Diffusion

- Temperatures in a bar

- Spread of disease

 

• Function Graphing and Applications

 

• Parametric Curves and Surfaces

 

• Graphical Objects that are the Results of Limit Processes

 

• Scalar Fields

 

• Simulation of Objects and Behaviors

- Gas laws and diffusion principles

- Molecular display

- A scientific instrument

- Monte Carlo modeling process

 

• 4D Graphing

- Volume data

- Vector fields

 

• Graphing in Higher Dimensions

 

• Data-Driven Graphics

 

• Code Examples

- Diffusion

- Function graphing

- Parametric curves and surfaces

- Limit processes

- Scalar fields

- Representation of objects and behaviors

- Molecular display

- Monte Carlo modeling

- 4D graphing

- Higher dimensional graphing

- Data-driven graphics

 

• Summary

• Credits

• OpenGL glossary for this chapter

• Questions

• Exercises

• Experiments

• Projects

 

Chapter 10: Rendering and the Rendering Pipeline

• Introduction

 

• The Pipeline

 

• The Rendering Pipeline for OpenGL

- Texture mapping in the rendering pipeline

- Per-fragment operations

- Some extensions to OpenGL

- An implementation of the rendering pipeline in a graphics card

 

• The Rasterization Process

 

• Some 3D Viewing Operations with Graphics Cards

 

• Summary

• Questions

• Exercises

• Experiments

 

Chapter 11: Dynamics and Animation

• An Example

 

• Types of Animations

- Procedural animation

- Interpolation animation

- Frame-based animation

- An interpolation example

 

• Some Issues in Animation

- Frame rates

- Temporal aliasing

- Building an animation

 

• Animation and Visual Communication

 

• Showing Motion in Still Frames

- Motion traces

- Motion blurring

 

• Interesting Animation Viewing Devices

 

• A Word to the Wise

 

• Animation Examples in OpenGL

- Moving objects in your model

- Controlling time for your animation

- Moving parts of objects in your model

- Moving the eye point or the view frame in your model

- Interpolating textures in your scene

- Changing features of your models

- Creating traces

- Using the accumulation buffer

- Creating a digital video

 

• Some Points to Consider When Doing Animations with OpenGL

 

• A Word to the Wise

 

• OpenGL glossary for this chapter

• Questions

• Exercises

• Experiments

• Projects

 

Chapter 12: High-Performance Graphics Techniques

• Definitions

 

• Techniques

- Hardware avoidance

- Hardware use

- Designing out visible polygons

- Culling polygons

- Avoiding depth comparisons

- Front-to-back drawing

- Binary space partitioning

- Clever use of textures

- System speedups

- Level of detail

- Reducing lighting computation

- Fog

- Collision detection

 

• Summary

• OpenGL glossary for this chapter

• Questions

• Exercises

• Experiments

• Projects

 

Chapter 13: Interpolation and Spline Modeling

• Introduction

- Interpolations

- Extending interpolations to more control points

- Generating normals for a patch

- Generating texture coordinates for a patch

 

• Interpolations in OpenGL

- Automatic normal and texture generation with evaluators

- Additional techniques

 

• Definitions

 

• Some Examples

- Spline curves

- Spline surfaces

 

• A Word to the Wise

 

• Summary

• OpenGL glossary for this chapter

• Questions

• Exercises

• Experiments

• Projects

 

Chapter 14: Per-Pixel Operations

• Introduction

 

• Definitions

 

• Ray Casting

 

• Ray Tracing

 

• Volume Rendering

 

• Mandelbrot and Julia Sets

 

• Fractal Forgery Landscapes

 

• Iterated Function Systems

- Contraction mappings

- Generating functions

 

• Per-pixel Operations Supported by OpenGL

 

• Summary

• OpenGL glossary for this chapter

• Questions

• Exercises

• Experiments

• Projects

 

Chapter 15: Hardcopy

• Introduction

 

• Definitions

 

• Choosing an Output Medium

- Digital images

- Print

- Film

- 3D image formats

- Video

- Digital video

- 3D object prototyping

- The STL file

- Creating anaglyphs in OpenGL

 

• Summary

• OpenGL glossary for this chapter

• Questions

• Exercises

• Experiments

 

References and Resources

 

Appendices

• Appendix I: PDB file format

• Appendix II: CTL file format

• Appendix III: STL file format

 

Index

 

The initial development of this project was supported by National Science Foundation grant DUE-9950121. All opinions, findings, conclusions, and recommendations in this work are those

of the author and do not necessarily reflect the views of the National Science Foundation.

 

Textbook

List Price: $129.00

Add to Shopping Cart

Members pay only $116.10

Free FedEx Ground Shipping.

Online Book