i
i
i
i
i
i
i
i
Preface
How much has happened in six years! Luckily for us, there has not been a
paradigm shift (yet), but the amount of creative energy that has gone into
the field these past years is incredible. To keep up with this ever-growing
field, we are fortunate this time to be three authors instead of two. Naty
Hoffman joins us this edition. He has years of experience in the field and
has brought a fresh perspective to the book.
Since the second edition in 2002, researchers have produced hundreds
of articles in the area of interactive computer graphics. At one point Naty
filtered through conference proceedings, saving articles he thought were
worth at least a mention. From just the research conferences alone the
list grew to over 350 references; this did not include those in journals,
book series like GPU Gems and ShaderX, or web articles. We realized
we had a challenge ahead of us. Even a thorough survey of each area
would make for a book of nothing but surveys. Such a volume would be
exhaustive, but exhausting, and ultimately unsatisfying. Instead, we have
focused on theory, algorithms, and architectures that we felt are key in
understanding the field. We survey the literature as warranted, but with
the goal of pointing you at the most recent work in an area and at resources
for learning more.
This book is about algorithms that create synthetic images fast enough
that the viewer can interact with a virtual environment. We have focused
on three-dimensional rendering and, to a limited extent, on user interaction.
Modeling, animation, and many other areas are important to the process
of making a real-time application, but these topics are beyond the scope of
this book.
We expect you to have some basic understanding of computer graphics
before reading this book, as well as computer science and programming.
Some of the later chapters in particular are meant for implementers of
various complex algorithms. If some section does lose you, skim on through
or look at the references. One of the most valuable services we feel we can
provide is to have you realize what others have discovered and that you do
not yet know, and to give you ways to learn more someday.
We make a point of referencing relevant material wherever possible, as
well as providing a summary of further reading and resources at the end of
xiii
i
i
i
i
i
i
i
i
xiv Preface
most chapters. Time invested in reading papers and books on a particular
topic will almost always be paid back in the amount of implementation
effort saved later.
Because the field is evolving so rapidly, we maintain a website related to
this book at: http://www.realtimerendering.com. The site contains links to
tutorials, demonstration programs, code samples, software libraries, book
corrections, and more. This book’s reference section is available there, with
links to the referenced papers.
Our true goal and guiding light while writing this book was simple. We
wanted to write a book that we wished we had owned when we had started
out, a book that was both unified yet crammed with details not found in
introductory texts. We hope that you will find this book, our view of the
world, of some use in your travels.
Acknowledgments
Special thanks go out to a number of people who went out of their way to
provide us with help. First, our graphics architecture case studies would
not have been anywhere as good without the extensive and generous coop-
eration we received from the companies making the hardware. Many thanks
to Edvard Sørgard, Borgar Ljosland, Dave Shreiner, and Jørn Nystad at
ARM for providing details about their Mali 200 architecture. Thanks also
to Michael Dougherty at Microsoft, who provided extremely valuable help
with the Xbox 360 section. Masaaki Oka at Sony Computer Entertainment
provided his own technical review of the PLAYSTATION
R
3systemcase
study, while also serving as the liaison with the Cell Broadband Engine
TM
and RSX
R
developers for their reviews.
In answering a seemingly endless stream of questions, fact-checking nu-
merous passages, and providing many screenshots, Natalya Tatarchuk of
ATI/AMD went well beyond the call of duty in helping us out. In addition
to responding to our usual requests for information and clarification, Wolf-
gang Engel was extremely helpful in providing us with articles from the
upcoming ShaderX
6
book and copies of the difficult-to-obtain ShaderX
2
books.
1
Ignacio Casta˜no at NVIDIA provided us with valuable support
and contacts, going so far as to rework a refractory demo so we could get
just the right screenshot.
The chapter reviewers provided an invaluable service to us. They sug-
gested numerous improvements and provided additional insights, helping
us immeasurably. In alphabetical order they are: Michael Ashikhmin,
Dan Baker, Willem de Boer, Ben Diamand, Ben Discoe, Amir Ebrahimi,
1
Check our website; he and we are attempting to clear permissions and make this
two-volume book [307, 308] available for free on the web.
i
i
i
i
i
i
i
i
Preface xv
Christer Ericson, Michael Gleicher, Manny Ko, Wallace Lages, Thomas
Larsson, Gr´egory Massal, Ville Miettinen, Mike Ramsey, Scott Schaefer,
Vincent Scheib, Peter Shirley, K.R. Subramanian, Mauricio Vives, and
Hector Yee.
We also had a number of reviewers help us on specific sections. Our
thanks go out to Matt Bronder, Christine DeNezza, Frank Fox, Jon Hassel-
gren, Pete Isensee, Andrew Lauritzen, Morgan McGuire, Jacob Munkberg,
Manuel M. Oliveira, Aurelio Reis, Peter-Pike Sloan, Jim Tilander, and
Scott Whitman.
We particularly thank Rex Crowle, Kareem Ettouney, and Francis Pang
from Media Molecule for their considerable help in providing fantastic im-
agery and layout concepts for the cover design.
Many people helped us out in other ways, such as answering ques-
tions and providing screenshots. Many gave significant amounts of time
and effort, for which we thank you. Listed alphabetically: Paulo Abreu,
Timo Aila, Johan Andersson, Andreas Bærentzen, Louis Bavoil, Jim Blinn,
Jaime Borasi, Per Christensen, Patrick Conran, Rob Cook, Erwin Coumans,
Leo Cubbin, Richard Daniels, Mark DeLoura, Tony DeRose, Andreas
Dietrich, Michael Dougherty, Bryan Dudash, Alex Evans, Cass Everitt,
Randy Fernando, Jim Ferwerda, Chris Ford, Tom Forsyth, Sam Glassen-
berg, Robin Green, Ned Greene, Larry Gritz, Joakim Grundwall, Mark
Harris, Ted Himlan, Jack Hoxley, John “Spike” Hughes, Ladislav
Kavan, Alicia Kim, Gary King, Chris Lambert, Je Lander, Daniel Leaver,
Eric Lengyel, Jennifer Liu, Brandon Lloyd, Charles Loop, David Luebke,
Jonathan Ma¨ım, Jason Mitchell, Martin Mittring, Nathan Monteleone,
Gabe Newell, Hubert Nguyen, Petri Nordlund, Mike Pan, Ivan Pedersen,
Matt Pharr, Fabio Policarpo, Aras Pranckeviˇcius, Siobhan Reddy, Dirk
Reiners, Christof Rezk-Salama Eric Risser, Marcus Roth, Holly Rushmeier,
Elan Ruskin, Marco Salvi, Daniel Scherzer, Kyle Shubel, Philipp Slusallek,
Torb j¨orn oderman, Tim Sweeney, Ben Trumbore, Michal Valient, Mark
Valledor, Carsten Wenzel, Steve Westin, Chris Wyman, Cem Yuksel, Billy
Zelsnack, Fan Zhang, and Renaldas Zioma.
We also thank many others who responded to our queries on public
forums such as GD Algorithms. Readers who took the time to send us
corrections have also been a great help. It is this supportive attitude that
is one of the pleasures of working in this field.
As we have come to expect, the cheerful competence of the people at
A K Peters made the publishing part of the process much easier. For this
wonderful support, we thank you all.
On a personal note, Tomas would like to thank his son Felix and daugh-
ter Elina for making him understand (again) just how fun it can be to play
computer games (on the Wii), instead of just looking at the graphics, and
needless to say, his beautiful wife Eva. . .
i
i
i
i
i
i
i
i
xvi Preface
Eric would also like to thank his sons Ryan and Evan for their tireless
efforts in finding cool game demos and screenshots, and his wife Cathy for
helping him survive it all.
Naty would like to thank his daughter Karen and son Daniel for their
forbearance when writing took precedence over piggyback rides, and his
wife Dorit for her constant encouragement and support.
Tomas Akenine-M¨oller
Eric Haines
Naty Hoffman
March 2008
Acknowledgements for the Second Edition
One of the most agreeable aspects of writing this second edition has been
working with people and receiving their help. Despite their own press-
ing deadlines and concerns, many people gave us significant amounts of
their time to improve this book. We would particularly like to thank
the major reviewers. They are, listed alphabetically: Michael Abrash,
Ian Ashdown, Ulf Assarsson, Chris Brennan, ebastien Domin´e, David
Eberly, Cass Everitt, Tommy Fortes, Evan Hart, Greg James, Jan Kautz,
Alexander Keller, Mark Kilgard, Adam Lake, Paul Lalonde, Thomas
Larsson, Dean Macri, Carl Marshall, Jason L. Mitchell, Kasper Høy Nielsen,
Jon Paul Schelter, Jacob Str¨om, Nick Triantos, Joe Warren, Michael
Wimmer, and Peter Wonka. Of these, we wish to single out Cass Everitt
at NVIDIA and Jason L. Mitchell at ATI Technologies for spending large
amounts of time and effort in getting us the resources we needed. Our
thanks also go out to Wolfgang Engel for freely sharing the contents of
his upcoming book, ShaderX [306], so that we could make this edition as
current as possible.
From discussing their work with us, to providing images or other re-
sources, to writing reviews of sections of the book, many others helped
in creating this edition. They all have our gratitude. These people in-
clude: Jason Ang, Haim Barad, Jules Bloomenthal, Jonathan Blow, Chas.
Boyd, John Brooks, Cem Cebenoyan, Per Christensen, Hamilton Chu,
Michael Cohen, Daniel Cohen-Or, Matt Craighead, Paul Debevec, Joe
Demers, Walt Donovan, Howard Dortch, Mark Duchaineau, Phil Dute,
Dave Eberle, Gerald Farin, Simon Fenney, Randy Fernando, Jim Ferwerda,
Nickson Fong, Tom Forsyth, Piero Foscari, Laura Fryer, Markus Giegl,
Peter Glaskowsky, Andrew Glassner, Amy Gooch, Bruce Gooch, Simon
Green, Ned Greene, Larry Gritz, Joakim Grundwall, Juan Guardado, Pat
Hanrahan, Mark Harris, Michael Herf, Carsten Hess, Rich Hilmer, Kenneth
Hoff III, Naty Hoffman, Nick Holliman, Hugues Hoppe, Heather Horne,
Tom Hubina, Richard Huddy, Adam James, Kaveh Kardan, Paul Keller,
i
i
i
i
i
i
i
i
Preface xvii
David Kirk, Alex Klimovitski, Jason Knipe, Jeff Lander, Marc Levoy,
J.P. Lewis, Ming Lin, Adrian Lopez, Michael McCool, Doug McNabb,
Stan Melax, Ville Miettinen, Kenny Mitchell, Steve Morein, Henry More-
ton, Jerris Mungai, Jim Napier, George Ngo, Hubert Nguyen, Tito Pag´an,
org Peters, Tom Porter, Emil Praun, Kekoa Proudfoot, Bernd Raabe,
Ravi Ramamoorthi, Ashutosh Rege, Szymon Rusinkiewicz, Carlo equin,
Chris Seitz, Jonathan Shade, Brian Smits, John Spitzer, Wolfgang Straßer,
Wolfgang St¨urzlinger, Philip Taylor, Pierre Terdiman, Nicolas Thibieroz,
Jack Tumblin, Fredrik Ulfves, Thatcher Ulrich, Steve Upstill, Alex Vlachos,
Ingo Wald, Ben Watson, Steve Westin, Dan Wexler, Matthias Wloka, Peter
Woytiuk, David Wu, Garrett Young, Borut Zalik, Harold Zatz, Hansong
Zhang, and Denis Zorin. We also wish to thank the journal ACM Transac-
tions on Graphics for continuing to provide a mirror website for this book.
Alice and Klaus Peters, our production manager Ariel Jaffee, our editor
Heather Holcombe, our copyeditor Michelle M. Richards, and the rest of
the staff at A K Peters have done a wonderful job making this book the
best possible. Our thanks to all of you.
Finally, and most importantly, our deepest thanks go to our families for
giving us the huge amounts of quiet time we have needed to complete this
edition. Honestly, we never thought it would take this long!
Tomas Akenine-M¨oller
Eric Haines
May 2002
Acknowledgements for the First Edition
Many people helped in making this book. Some of the greatest contribu-
tions were made by those who reviewed parts of it. The reviewers will-
ingly gave the benefit of their expertise, helping to significantly improve
both content and style. We wish to thank (in alphabetical order) Thomas
Barregren, Michael Cohen, Walt Donovan, Angus Dorbie, Michael Gar-
land, Stefan Gottschalk, Ned Greene, Ming C. Lin, Jason L. Mitchell, Liang
Peng, Keith Rule, Ken Shoemake, John Stone, Phil Taylor, Ben Trumbore,
Jorrit Tyberghein, and Nick Wilt. We cannot thank you enough.
Many other people contributed their time and labor to this project.
Some let us use images, others provided models, still others pointed out
important resources or connected us with people who could help. In addi-
tion to the people listed above, we wish to acknowledge the help of Tony
Barkans, Daniel Baum, Nelson Beebe, Curtis Beeson, Tor Berg, David
Blythe, Chas. Boyd, Don Brittain, Ian Bullard, Javier Castellar, Satyan
Coorg, Jason Della Rocca, Paul Diefenbach, Alyssa Donovan, Dave Eberly,
Kells Elmquist, Stuart Feldman, Fred Fisher, Tom Forsyth, Marty Franz,
Thomas Funkhouser, Andrew Glassner, Bruce Gooch, Larry Gritz, Robert
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset