Welcome to the official website for Beginning OpenGL Game Programming, available now from Course Technology PTR (formerly Premier Press). Here you will find information about what's contained in the book. You'll also find material supporting the book, including an FAQ and any errata we find.
Beginning OpenGL Game Programming is a book by Dave Astle and Kevin Hawkins, co-creators of GameDev.net. The book will teach you OpenGL, and then show you how to use it to create 3D games for Windows.
Where to get it
Beginning OpenGL Game Programming is available now at the following online booksellers:
You should also be able to find it at the following stores
- Borders
- CompUSA
- Barnes and Noble
- Best Buy
Table of Contents
Part I - The Basics
Chapter 0 - Introduction
0.1 - What You Should Know
0.2 - Your Tools
0.3 - Who Should Read This
0.4 - What we Will and Won't Cover
0.5 - About the Target Platform
0.6 - Using This Book
0.7 - What's New
Chapter 1 - The Exploration Begins… Again
1.1 - Why Make Games?
1.1.1 - The World of 3D Games
1.2 - What is OpenGL?
1.2.1 - OpenGL History
1.2.2 - OpenGL Architecture
1.3 - Related Libraries
1.3.1 - GLUT
1.3.2 - SDL
1.4 - OpenGL vs. DirectX
1.5 - A Sneak Peek
1.5 - Summary
Chapter 2 - Creating a Simple OpenGL Application
2.1 - OpenGL and Microsoft Windows
2.1.1 - Introduction to WGL
2.1.2 - The Rendering Context
2.1.3 - Pixel Formats
2.1.4 - Going Fullscreen
2.1.5 - A Complete Windows Application
2.2 -- Summary
Chapter 3 - OpenGL States and Primitives
4.1 - State Functions
4.1.1 - Querying Numeric States
4.1.2 - glIsEnabled()
4.1.3 - Enabling and Disabling States
4.1.4 - Querying String Values
4.1.5 - Finding Errors
4.1.6 - Giving OpenGL a Hint
4.2 - Handling Primitives
4.2.1 - Drawing Points in 3D
4.2.2 - Drawing Lines in 3D
4.2.3 - Drawing Polygons in 3D
4.2.4 - Using Primitives: Triangles and Quads Example
4.3 - Attributes
4.4 - Summary
4.4.1 - What You Have Learned
4.4.2 - Review Questions
4.4.3 - On Your Own
Chapter 4 - Coordinate Transformations and OpenGL Matrices
4.1 - Understanding Coordinate Transformations
4.1.1 - Eye Coordinates
4.1.2 - Viewing Transformations
4.1.3 - Modeling Transformations
4.1.4 - Projection Transformations
4.1.5 - Viewport Transformations
4.2 - OpenGL and Matrices
4.2.1 - The Modelview Matrix
4.2.2 - Translation
4.2.3 - Rotation
4.2.4 - Scaling
4.2.5 - Matrix Stacks
4.2.6 - The Robot Example
4.3 - Projections
4.3.1 - Orthographic
4.3.2 - Perspective
4.3.3 - Setting the Viewport
4.3.4 - Projection Example
4.4 - Manipulating the Viewpoint
4.4.1 - Using the gluLookAt() Function
4.4.2 - Using the glRotate() and glTranslate() Functions
4.4.3 - Creating Your Own Custom Routines
4.5 - Using Your Own Matrices
4.5.1 - Loading Your Matrix
4.5.2 - Multiplying Matrices
4.6 - Summary
4.6.1 - What You Have Learned
4.6.2 - Review Questions
4.6.3 - On Your Own
Chapter 5 - Adding Colors, Blending, and Lighting
5.1 - How Does Color Work?
5.2 - Using Colors in OpenGL
5.2.1 - Setting the Color
5.2.2 - A Colorful Example
5.3 - Shading
5.4 - Lighting in OpenGL
5.4.1 - OpenGL Lighting and the Real World
5.4.2 - Light Sources
5.4.3 - Materials
5.4.4 - Normals
5.4.5 - The Lighting Model
5.5 - Blending
5.5.1 - Transparency
5.6 - Fog
5.6.1 - OpenGL Fog
5.6.2 - Fog Coordinates
5.6.3 - Fog in Action
5.7 -- Summary
Chapter 6 - Bitmaps and Images with OpenGL
6.1 - The OpenGL Bitmap
6.1.1 - Positioning the Bitmap
6.1.2 - Drawing the Bitmap
6.1.3 - An OpenGL Bitmap Example
6.2 - Using Images
6.2.1 - Drawing Image Data
6.2.2 - Reading from the Screen
6.2.3 - Copying Screen Data
6.2.4 - Magnification, Reduction, and Flipping
6.3 - Managing Pixel Storage
6.4 - Targa Image Files
6.4.1 - The .TGA File Format
6.4.2 - Loading .TGA Files
6.5 - Summary
6.5.1 - What You Have Learned
Chapter 7 - Texture Mapping
7.1 - An Overview of Texture Mapping
7.2 - Texture Coordinates
7.3 - Using the Texture Map
7.3.1 - Texture Objects
7.3.2 - Specifying Textures
7.3.2.1 - 2D Textures
7.3.2.2 - 1D Textures
7.3.2.3 - 3D Textures
7.3.2.4 - Cube Map Textures
7.3.3 - Texture Filtering
7.4 - Mipmaps
7.4.1 - Mipmaps and the OpenGL Utility Library
7.4.2 - Automatic Mipmap Generation
7.5 - Texture Parameters
7.5.1 - Texture Wrap Modes
7.5.2 - Texture Level of Detail
7.6 - Texture Environments and Texture Functions
7.6.1 - Specifying the Texture Environment
7.7 - Textured Terrain
7.7.1 - Building the Mesh
7.10 -- Summary
7.10.1 - What You Have Learned
Part II - Beyond the Basics
Chapter 8 - OpenGL Extensions
8.1 - Anatomy of an Extension
8.1.1 - Extension Names
8.1.2 - Name Strings
8.1.3 - Functions
8.1.4 - Tokens
8.2 - Using Extensions
8.2.1 - Checking the Name String
8.2.2 - Obtaining the Function's Entry Point
8.2.3 - Declaring Enumerants
8.3 - WGL Extensions
8.4 - Introduction to GLee
8.4.1 - Setting up GLee
8.4.2 - Using GLee
8.4.3 - Using GLee with Core Extensions
8.5 - Extensions in Action
10.6 - Summary
10.6.1 - What You Have Learned
Chapter 9 - More on Texture Mapping
9.1 - More on Texture Specification
9.1.1 - Sub-Images
9.1.2 - Copying from the Color Buffer
9.2 - The Texture Matrix Stack
9.3 - Texture Coordinate Generation
9.3.1 - Environment Mapping
9.4 - Multitexturing
9.4.1 - Textured Terrain
9.4.2 - Texture Combine
9.5 - Summary
Chapter 10 - Display Lists and Vertex Arrays
10.1 - Display Lists
10.1.1 - Creating a Display List
10.1.2 - Filling a Display List with Commands
10.1.3 - Executing Display Lists
10.1.4 - Display List Gotchas
10.1.5 - Destroying Display Lists
10.1.6 - Display Lists and Textures
10.2 - Vertex Arrays
10.2.1 - Array-based Data
10.2.1 - Enabling Vertex Arrays
10.2.2 - Working with Arrays
10.2.3 - Interleaved Arrays
10.2.4 - Vertex Arrays and Multitexturing
10.2.5 - Locking Arrays
10.2.6 - Example: Marbles Demo
10.3 - Frustum Culling
10.3.1 - Determining the View Frustum
10.3.2 - Testing Points
10.3.3 - Testing Spheres
10.3.4 - Frustum Culling Applied
10.4 - Summary
10.4.1 - What You Have Learned
Chapter 11 - Displaying Text
11.1 - Bitmap Fonts
11.2 - Outline Fonts
11.3 - Texture Mapped Fonts
11.4 -- Summary
Chapter 12 - OpenGL Buffers
12.1 - What is an OpenGL Buffer?
12.1.1 - Clearing the Buffers
12.1.2 - Scissor Boxes
12.2 - The Color Buffer
12.2.1 - Alpha Test
12.2.2 - Color Masking
12.2.3 - Logical Operations
12.3 - The Depth Buffer
12.3.1 - Depth Comparison Functions
12.3.2 - Read-Only Depth Buffer
12.4 - The Stencil Buffer
12.4.1 - An Example of Stencil Testing
12.5 - The Accumulation Buffer
12.5.1 - Using the Accumulation Buffer
12.6 -- Summary
12.6.1 - What You Have Learned
Chapter 13 - The Endgame
|