Table Of ContentTLFeBOOK
00 BOGL_GP FM 3/1/04 2:14 PM Page i
TLFeBOOK
This page intentionally left blank
TLFeBOOK
00 BOGL_GP FM 3/1/04 2:14 PM Page iii
TLFeBOOK
00 BOGL_GP FM 3/1/04 2:14 PM Page iv
© 2004 by Premier Press,a division ofCourse Technology.All rights reserved. Senior Vice President,
Nopart ofthis book may be reproduced or transmitted in any form or by any Course PTR Group:
means,electronic or mechanical,including photocopying,recording,or by any AndyShafran
information storage or retrieval system without written permission from
Publisher:
Course PTR,except for the inclusion ofbriefquotations in a review.
Stacy L.Hiquet
The Premier Press logo and related trade dress are trademarks ofPremier Press
Senior Marketing Manager:
and may not be used without written permission.
Sarah O’Donnell
OpenGL is a registered trademark ofSGI.
Marketing Manager:
glFont © 2004 Brad Fish,bhf5@email.byu.edu. Heather Hurley
GLee © 2004 Ben Woodhouse,ben@elf-stone.com,with parts copyright by SGI. Manager ofEditorial Services:
All rights reserved. Heather Talbot
All other trademarks are the propertyoftheir respective owners. Senior Acquisitions Editor:
Emi Smith
Important: Course PTR cannot provide software support. Please contact the
appropriate software manufacturer’s technical support line or Web site for Associate Marketing Manager:
assistance. Kristin Eisenzopf
Course PTR and the authors have attempted throughout this book to distin- Project Editor:
guish proprietary trademarks from descriptive terms by following the capital- Sandy Doell
ization style used by the manufacturer.
Technical Reviewer:
Information contained in this book has been obtained by Course PTR from Ben Woodhouse
sources believed to be reliable.However,because ofthe possibility ofhuman or
Retail Market Coordinator:
mechanical error by our sources,Course PTR,or others,the Publisher does not
Sarah Dubois
guarantee the accuracy,adequacy,or completeness of any information and is
not responsible for any errors or omissions or the results obtained from use of Interior Layout Tech:
such information. Readers should be particularly aware of the fact that the Marian Hartsough
Internet is an ever-changing entity. Some facts may have changed since this
book went to press. Cover Designer:
Steve Deschene
Educational facilities, companies, and organizations interested in multiple
copies or licensing ofthis book should contact the publisher for quantity dis- CD-ROM Producer:
count information.Training manuals,CD-ROMs,and portions ofthis book are Brandon Penticuff
also available individually or can be tailored for specific needs.
Indexer:
ISBN:1-59200-369-9 Katherine Stimson
Library ofCongress Catalog Card Number:2004090734
Proofreader:
Printed in the United States ofAmerica
Gene Redding
04 05 06 07 08 BH 10 9 8 7 6 5 4 3 2 1
Course PTR,a division ofCourse Technology
25 Thomson Place
Boston,MA 02210
http://www.courseptr.com
TLFeBOOK
00 BOGL_GP FM 3/1/04 2:14 PM Page v
For my family and friends
—Kevin
For my crash of rhinos
—Dave
TLFeBOOK
00 BOGL_GP FM 3/1/04 2:14 PM Page vi
Acknowledgments
F
irst and foremost,I want to thank my wife Melissa and my kids,Rebi,Evan,Ellie,
Tyler,and Nate,for all of your support throughout this project,and for dragging
me away from the computer just often enough for me to retain most ofmy sanity.
I love you all.
I’d also like to thank Kevin, my partner and collaborator, without whom I never would
have done this.I can’t imagine finding a better teammate.
Big thanks to everyone at Premier Press/Course Technology.You’re a great group of peo-
ple to work with,and I genuinely appreciate the confidence you place in me.
Ben Woodhouse deserves special mention for his efforts as technical editor.He provided
valuable feedback that helped make this book much better than it would have been oth-
erwise.Thanks also to The Mighty Pete for allowing us to use his skybox images in many
of the example programs,and to Jeff Royle from ATI Technologies for providing us with
graphics hardware for testing purposes.
Finally, I want to thank everyone who has taught me in some way, including Chuck
Hansen,Robert Kessler and my other professors at the University of Utah,my coworkers
at Avalanche Software and Qualcomm, the denizens of the GameDev.net forums, and
everyone else who has taken the time to share their knowledge and experience via a Web
site or book.
—Dave Astle
vi
TLFeBOOK
00 BOGL_GP FM 3/1/04 2:14 PM Page vii
Acknowledgments vii
I’d like to thank Dave,for his work as a good teammate,motivator,and friend.Chances
are you would not be holding this book in your hands if he had not used a little friendly
coercion on me.I’m amazed at what we were able to accomplish with this project,and a
good deal of its success is due to our ability to work together as a team. I also want to
thank my family for their constant support for me in everything I do. Oftentimes they
don’t get as much credit as they should be getting.
Myfriends and coworkers also deserve a share ofthe thanks.Whether they know it or not,
I’ve learned from all ofthem in some form or another and value their friendships:Tucker,
Tom, Christie, Mike, Rael, Kristin,Vivian, JP,Andy, Greg R., Greg S., Bill, Kyle, Randall,
Jordan,Hack,Justin,Nate,Luke M.,Mike M.,Johnny Y.,Nick M.,and so many others that
wedon’t have the space for here.Also,thank you to the Premier Press group for the oppor-
tunity to do this project and for maintaining a high degree of support and confidence in
both Dave and me,and in GameDev.net.
And finally, I want to thank everyone who has provided me with the ability and talent,
directly or indirectly,that has allowed me to create this book,including the professors at
Embry-Riddle,my baseball coaches and teammates,Chris Hargrove,Seth Robinson,Jeff
Molofee,Rich Benson,and a host of software engineering colleagues.
—Kevin Hawkins
TLFeBOOK
00 BOGL_GP FM 3/1/04 2:14 PM Page viii
About the Authors
DAVE ASTLE has been programming games professionally for several years, working on
titles for the Xbox,PlayStation 2,GameCube,PC,and various wireless devices.Currently,
he is a lead engineer in the Gaming and Graphics group at Qualcomm, Inc. He is the
cofounder and executive producer of GameDev.net, the leading online community for
game developers.He has authored or contributed to several game development books and
has spoken at industry conferences, including the Game Developers’ Conference. He
received his bachelor’s degree in Computer Science from the University ofUtah,where he
specialized in graphics,artificial intelligence,networking,software engineering,and com-
piler theory and design.
KEVINHAWKINSis a lead software engineer at Raydon Corporation where he designs and
develops training simulations for a variety of customers, including the U.S. military. In
addition,Kevin is the cofounder and CEO of GameDev.net,the leading online commu-
nity for game developers.He holds a master’s degree in Software Engineering and a bach-
elor’s degree in Computer Science from Embry-Riddle University, where he also played
intercollegiate baseball and was drafted by the Cleveland Indians in the 2002 amateur
baseball draft.
viii
TLFeBOOK
00 BOGL_GP FM 3/1/04 2:14 PM Page ix
Contents at a Glance
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xvii
Part I OpenGL Basics . . . . . . . . . . . . . . . . . . . . . . . .1
Chapter 1 The Exploration Begins . . . Again . . . . . . . . . . . . . . . . . . . . . . . . . .3
Chapter 2 Creating a Simple OpenGL Application . . . . . . . . . . . . . . . . . . . . .13
Chapter 3 OpenGL States and Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
Chapter 4 Transformations and Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . .67
Chapter 5 Colors, Lighting, Blending, and Fog . . . . . . . . . . . . . . . . . . . . . . .99
Chapter 6 Bitmaps and Images with OpenGL . . . . . . . . . . . . . . . . . . . . . . .133
Chapter 7 Texture Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
Part II Beyond the Basics . . . . . . . . . . . . . . . . . . .183
Chapter 8 OpenGL Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .185
Chapter 9 More on Texture Mapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197
Chapter 10 Up Your Performance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .221
Chapter 11 Displaying Text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
Chapter 12 OpenGL Buffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261
Chapter 13 The Endgame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277
Part III Appendices . . . . . . . . . . . . . . . . . . . . . . . . .283
Appendix A Answers to Review Questions and Exercises . . . . . . . . . . . . . . . .285
Appendix B Further Reading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .295
Appendix C What’s on the CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301 ix
TLFeBOOK