 |
To access the contents, click the chapter and section titles.
Open GL Super Bible
(Publisher: Macmillan Computer Publishing)
Author(s): Waite group Press
ISBN: 1571690735
Publication Date: 08/01/96
- Introduction
- Foreword
- About The Authors
- Part I—Introduction To OpenGL
- Chapter 1—What Is OpenGL?
- About OpenGL
- A History of OpenGL
- Further Developments in OpenGL
- How OpenGL Works
- OpenGL under Windows
- Graphics Architecture: Software versus Hardware
- Limitations of the Generic Implementation
- Future Prospects for OpenGL in Windows
- Chapter 2—3D Graphics Fundamentals
- 3D Perception
- 2D + Perspective = 3D
- Hidden Line Removal
- Colors and Shading
- Lights and Shadows
- Coordinate Systems
- 2D Cartesian Coordinates
- Coordinate Clipping
- Viewports, Your Window to 3D
- Drawing Primitives
- 3D Cartesian Coordinates
- Projections, The Essence of 3D
- Orthographic Projections
- Perspective Projections
- Summary
- Chapter 3—Learning OpenGL With The AUX Library
- OpenGL: An API, Not a Language
- The OpenGL Division of Labor
- OpenGL Data Types
- Function Naming Conventions
- The AUX Library
- Platform Independence
- AUX = Platform I/O, the Easy Way
- Dissecting a Short OpenGL Program
- The Includes
- The Body
- Display Mode: Single-Buffered
- Position the Window
- Create the OpenGL Window
- Clear a Window (Erase with a Color)
- Actually Clear
- Flush That Queue
- Drawing Shapes with OpenGL
- The Rendering Function
- Drawing a Rectangle
- Initialization
- Scaling to the Window
- Setting the Viewport and Clipping Volume
- Defining the Viewport
- Defining the Clipping Volume
- Keeping a Square Square
- Animation with AUX
- Double Buffering
- Finally, Some 3D!
- Summary
- Reference Section
- Chapter 4—OpenGL for Windows: OpenGL + Win32 = Wiggle
- Drawing in Windows Windows
- GDI Device Contexts
- OpenGL Rendering Contexts
- Using the Wiggle Functions
- Creating and Selecting a Rendering Context
- Painting with OpenGL
- Preparing the Window for OpenGL
- Window Styles
- Pixel Formats
- Return of the Bouncing Square
- Scaling to the Window
- Ticktock, the Idle Clock
- Lights, Camera, Action!
- Summary
- Reference Section
- Chapter 5—Errors and Other Messages from OpenGL
- When Bad Things Happen to Good Code
- Who Am I and What Can I Do?
- Extensions to OpenGL
- Get a Clue with glHint
- Summary
- Reference Section
- Part II—Using OpenGL
- Chapter 6—Drawing in 3D: Lines, Points, and Polygons
- Drawing Points in 3D
- Setting Up a 3D Canvas
- A 3D Point: The Vertex
- Draw Something!
- Drawing Points
- Our First Example
- Setting the Point Size
- Drawing Lines in 3D
- Line Strips and Loops
- Approximating Curves with Straight Lines
- Setting the Line Width
- Line Stippling
- Drawing Triangles in 3D
- Triangles: Your First Polygon
- Winding
- Triangle Strips
- Triangle Fans
- Building Solid Objects
- Setting Polygon Colors
- Hidden Surface Removal
- Culling: Hiding Surfaces for Performance
- Polygon Modes
- Other Primitives
- Four-Sided Polygons: Quads
- Quad Strips
- General Polygons
- Filling Polygons, or Stippling Revisited
- Polygon Construction Rules
- Subdivision and Edges
- Summary
- Reference Section
- Chapter 7—Manipulating 3D Space: Coordinate Transformations
- Is This the Dreaded Math Chapter?
- Understanding Transformations
- Eye Coordinates
- Viewing Transformations
- Modeling Transformations
- The Modelview Duality
- Projection Transformations
- Viewport Transformations
- Matrix Munching
- What Is a Matrix?
- The Transformation Pipeline
- The Modelview Matrix
- Translation
- Rotation
- Scaling
- The Identity Matrix
- The Matrix Stacks
- A Nuclear Example
- Using Projections
- Orthographic Projections
- Perspective Projections
- A Far-Out Example
- Advanced Matrix Manipulation
- Loading a Matrix
- Performing Your Own Transformations
- Other Transformations
- Summary
- Reference Section
- Chapter 8—Color and Shading
- What Is a Color?
- Light as a Wave
- Light as a Particle
- Your Personal Photon Detector
- The Computer as a Photon Generator
- PC Color Hardware
- PC Display Modes
- Screen Resolution
- Color Depth
- 4-Bit Color
- 8-Bit Color
- 24-Bit Color
- Other Color Depths
- Selecting a Color
- The Color Cube
- Setting the Drawing Color
- Shading
- Setting the Shading Model
- Windows Palettes
- Color Matching
- Dithering
- Advantages of a Palette in 8-Bit Mode
- Palette Arbitration
- Creating a Palette
- Do You Need a Palette?
- The Palette’s Structure
- The 3-3-2 Palette
- Building the Palette
- Palette Creation and Disposal
- Some Restrictions Apply
- Color Index Mode
- Why Use Color Index Mode?
- Using Color Index Mode
- Show the Triangle
- Summary
- Reference Section
- Chapter 9—Lighting and Lamps
- Light in the Real World
- Ambient Light
- Diffuse Light
- Specular Light
- Put It All Together
- Materials in the Real World
- Material Properties
- Adding Light to Materials
- Calculating Ambient Light Effects
- Diffuse and Specular Effects
- Adding Light to a Scene
- Enable the Lighting
- Set Up the Lighting Model
- Set Material Properties
- Using a Light Source
- Which Way Is Up?
- Surface Normals
- Specifying a Normal
- Unit Normals
- Finding a Normal
- Setting Up a Source
- Setting the Material Properties
- Specifying the Polygons
- Lighting Effects
- Specular Highlights
- Specular Light
- Specular Reflectance
- Specular Exponent
- Normal Averaging
- Spotlights
- Creating a Spotlight
- Drawing a Spotlight
- Shadows
- What Is a Shadow?
- Squish Code
- A Shadow Example
- Lighting and Color Index Mode
- Summary
- Reference Section
- Chapter 10—3D Modeling and Object Composition
- Defining the Task
- Choosing a Projection
- Choosing the Lighting and Material Properties
- Displaying the Results
- Constructing a Model, One Piece at a Time
- The Head
- The Shaft
- The Thread
- Putting the Model Together
- A Makeshift Benchmark
- Improving Performance
- Creating a Display List
- Summary
- Reference Section
- Chapter 11—Raster Graphics in OpenGL
- Drawing Bitmaps
- Bitmap Fonts
- Building a Simple Font Library
- Pixmaps: Bitmaps with Color
- Drawing Pixmaps
- Remapping Colors
- Color Mapping Tables
- Scaling a Pixmap
- Panning a Pixmap
- Reading Pixmaps
- Copying Pixmaps
- A Bitmap File Viewer
- About Windows Bitmap Files
- Reading the .BMP File
- Writing the .BMP File
- Printing the Bitmap
- Displaying the Bitmap
- Summary
- Reference Section
- Chapter 12—Texture Mapping
- The Basics of Texture Mapping
- Defining Texture Images
- Defining 1D Textures
- Defining 2D Textures
- Drawing Textured Polygons
- Mipmapped Textures
- A Terrain Viewing Program
- Defining the Terrain
- Drawing Terrain
- Drawing the Scene
- Automatically Generating Texture Coordinates
- Flying Through the Terrain
- Summary
- Reference Section
- Chapter 13—Quadrics: Spheres, Cylinders, and Disks
- Creating a Quadric
- Changing the Way Quadrics Are Drawn
- Drawing Cylinders
- Drawing Cones
- Texturing and Cylinders
- Drawing Disks
- Disks and Textures
- Drawing Partial Disks
- Drawing Spheres
- Spheres and Textures
- Drawing a Pencil
- Summary
- Reference Section
- Part III—Advanced Topics and Special Effects
- Chapter 14—The OpenGL State Machine
- Basic OpenGL State Functions
- Saving and Restoring States
- Drawing States
- Depth Buffer States
- Stencil Buffer States
- Lighting States
- Texturing States
- Pixel States
- Reference Section
- Chapter 15—Buffers: Not Just for Animation
- What Are Buffers?
- Configuring Buffers
- The Color Buffer
- Double Buffering
- Stereo Buffering
- Swapping Buffers
- The Depth Buffer
- Depth Comparisons
- Depth Values
- Applications of the Depth Buffer
- Another Application of the Depth Buffer
- Cutting Away Parts of a Scene
- The Stencil Buffer
- Using the Stencil Buffer
- Stencil Buffer Functions
- Drawing into the Stencil Buffer
- The Accumulation Buffer
- Using the Accumulation Buffer for Motion Blur
- Using the Accumulation Buffer for Anti-Aliasing
- Reference Section
- Chapter 16—Visual Effects: Blending and Fog
- Blending
- Using Blending for Transparency
- Using Blending with Anti-Aliasing
- Using Blending for a Paint Program
- Fog
- Drawing Depth-Cued Teapots
- Other Types of Fog
- Fog Distance
- Revisiting the Terrain Viewing Program
- Summary
- Reference Section
- Chapter 17—Curves and Surfaces: What the #%@!&* Are NURBS?
- Curves and Surfaces
- Parametric Representation
- Control Points
- Continuity
- Evaluators
- A 2D Curve
- Evaluating a Curve
- A 3D Surface
- Lighting and Normal Vectors
- NURBS
- From Bazier to B-Splines
- Knots
- Creating a NURBS Surface
- NURBS Properties
- Define the Surface
- Trimming
- Summary
- Reference Section
- Chapter 18—Polygon Tessellation
- Complex Polygons
- Drawing Concave Polygons
- Drawing Complex Polygons
- Callback Functions
- Summary
- Reference Section
- Chapter 19—Interactive Graphics
- Selection
- Naming Your Primitives
- Working with Selection Mode
- The Selection Buffer
- Picking
- Hierarchical Picking
- Feedback
- The Feedback Buffer
- Feedback Data
- PassThrough Markers
- An Example
- Label the Objects for Feedback
- Step 1: Select the Object
- Step 2: Get Feedback on the Object
- Summary
- Reference Section
- Chapter 20—OpenGL On The 'Net: VRML
- When Worlds Collide
- Two-Dimensional Navigation
- Enter VRML
- WebSpace
- Installation
- The Walk Viewer
- The Examiner Viewer
- Open Inventor and VRML
- Summary
- Part IV—OpenGL with. . .
- Chapter 21—MFC-Based OpenGL Programming
- Isolate Your OpenGL Code
- Starting with AppWizard
- Build the Shell
- Add the Libraries
- Get CView Ready for OpenGL
- Pixel Format and Rendering Context
- Clean Up the Rendering Context
- Handling Window Resizing
- Rendering the Scene
- Don’t Erase First
- CPalette Handling
- Summary
- Chapter 22—OWL-Based OpenGL Programming
- Isolate Your OpenGL Code
- Starting with AppExpert
- Build the Shell
- Add the Headers
- Add the Message Handlers
- Fleshing Out the Shell
- Get TWindowView Ready for OpenGL
- Pixel Format and Rendering Context
- Clean Up the Rendering Context
- Handling Window Resizing
- Rendering the Scene
- No Flickering Allowed
- Keep It Moving
- TPalette Handling
- Summary
- Chapter 23—Visual Basic and 4GL-Based OpenGL Programming
- Low-Level Access Required
- The Magic of Objects
- Plug and Play
- Wrap It Up
- Use and Operation of WaiteGL.OCX
- OpenGL Flags
- Installing and Using WaiteGL from VB 4.0
- Installing the Control
- A Visual Basic Example
- Painting the OpenGL Window
- Now for Some Action
- Installing the OCX in Delphi 2.0
- Installing the Control
- A Delphi Example
- Painting the OpenGL Window
- Now for Some Action
- Some Notes About the Source
- Summary
- Chapter 24—The Future of OpenGL and Windows
- Conclusion
Appendix A
Appendix B
Appendix C
Appendix D
Index
|