From bwh@netcom2.netcom.com Wed Feb  1 11:11:01 PST 1995
Article: 13031 of comp.graphics.algorithms
Newsgroups: comp.graphics.algorithms,comp.graphics,rec.games.programmer
Path: fido.asd.sgi.com!globe.csd.sgi.com!gazette.engr.sgi.com!enews.sgi.com!lll-winken.llnl.gov!noc.near.net!bigboote.WPI.EDU!news.mathworks.com!hookup!swrinde!howland.reston.ans.net!ix.netcom.com!netcom.com!netcom2!bwh
From: bwh@netcom2.netcom.com (Brian Hook)
Subject: 3D BOOK LIST 3.10 (LONG)
Message-ID: <BWH.95Jan31170831@netcom2.netcom.com>
Sender: bwh@netcom.com (Brian Hook)
Organization: NETCOM On-line services
Date: Wed, 1 Feb 1995 01:08:30 GMT
Lines: 1300
Xref: fido.asd.sgi.com comp.graphics.algorithms:13031 comp.graphics:65393 rec.games.programmer:45333


3D Graphics Book List 3.10
by Brian Hook (bwh@netcom.com)

REVISIONS:

Please see the end of this list for revision notes.  I revise this
almost weekly but try to post only biweekly or so, so many revisions
can be missed if I put only the most recent at the beginning.

INTRODUCTION:

In the course of attempting to write games, simulators, and virtual
reality applications for the PC I've run across an amazing lack of
information on how to program 3D graphics efficiently.  There are
several good books on 3D computer graphics; unfortunately, if you
don't know what they are you likely won't be finding them anytime soon
since most stores don't stock even the "classics".  So, in an attempt
to help other budding 3D programmers get the necessary literature for
programming, here is a list of books that I've found useful.

Some of these references were taken from the comp.graphics FAQ, but
the reviews were done by myself.  I am personally interested in
interactive real-time 3d graphics, so stuff on advanced rendering,
radiosity, or raytracing is not of huge significance.  However, many
of the books I review do in fact cover these topics (rather
extensively at that). I have not seen many of the "Bibles" of graphics
-- Newmann and Sproull, Burger and Gillies, etc.  but I hear they are
invaluable so they may be worth a peek.

YOUR OPINIONS:

Also, some folks e-mail suggestions or differences of opinions with
regards to some of the books I review.  I enjoy these mailings, and
opinions are definitely solicited.  HOWEVER, please do not expect me
to put a book in based solely on your opinion.  One aspect of this
book list that I'd like to remain "pure" is that all opinions are mine
and only mine.  This isn't because of some ego trip, it's because it's
practical.  I need to be able to defend my choices and elaborate on my
reviews when directly questioned about my reasoning. This is not
something I can do if I put in other people's opinions, which may
or may not coincide with my own (or other's).  If I hear enough
glowing reports of a book, I might put a "I hear it's good" or
something like that, but that's about it.

If, by the way, you are an author of one of these books and don't
agree with my opinions, please feel free to drop me a line.  I'm
open to discourse on these matters, but please accept the fact that
these are my opinions and I am the sole judge of what goes in
this list.  If you want me to review other of your books,
please send me copies, since I have a limited budget (I've only
spent, gee, about $1600 on my library so far, and I can't
justify spending money on books that others want me to review
if the books aren't likely to be useful to me).

Either way, your input and opinions are greatly appreciated.

REDISTRIBUTION:

If you grab this post and make it available through other
non-electronic means, please contact me first.  If you want to put
this up on the Web, gopher, ftp, a mail server, whatever, that's fine,
just give proper credit.  I'm kind of worried about alternate versions
of this getting out, since I've seen some REAL old ones floating
around.  Try and keep up to date as much as possible by watching for
my posts on comp.graphics.algorithms, comp.graphics, and
rec.games.programmer.

THANK YOU!

A big thanks to all of you have sent out corrections, updated
information on ISBN numbers, etc.  This book list wouldn't be complete
without that information.  Thanks a bunch!

GRAPHICS BOOKS:

3D Computer Graphics, 2nd Ed.
   Alan Watt
   Addison-Wesley 1993, ISBN 0-201-63186-5

3D Computer Animation
   John Vince
   Addison-Wesley 1992, ISBN 0-201-62756-6

Advanced Animation and Rendering Techniques
   Alan Watt and Mark Watt
   Addison-Wesley 1993, ISBN 0-201-54412-1

Computational Geometry in C 
(NOTE: I haven't seen this book yet but I hear it's real good)
   Joseph O'Rourke
   Cambridge University Press, 1994
     ISBN 0-521-44592-2 (Paperback)
     ISBN 0-521-44034-3 (Hardback)

Computer Graphics: An Introduction to the Mathematics and Geometry
   Michael Mortenson
   Industrial Press 1989, ISBN 0831111828

Computer Graphics: A Programming Approach, 2nd Edition
   Steven Harrington
   McGraw-Hill 1987 ISBN 0-07-026753-7

Computer Graphics: Principles and Practice (2nd Ed.)
   J.D. Foley, A. van Dam, S.K. Feinder, J.F. Hughes
   Addison-Wesley 1990, ISBN 0-201-12110-7

Digital Image Processing
   Rafael C. Gonzalez and Richard E. Woods
   Addison-Wesley 1992, ISBN 0-201-50803-6

Digital Image Warping
   George Wolberg
   IEEE Computer Society Press 1990, ISBN 0-8186-8944-7

Fast Algorithms for 3D Graphics
   Georg Glaeser
   Springer-Verlag 1994, ISBN 0-387-94288-2

Flights of Fantasy
   Chris Lampton
   The Waite Group Press 1993 ISBN 1-878739-18-2

Graphics Gems
   Andrew Glassner (ed.)
   Academic Press 1990 ISBN 0-12-286165-5

Graphics Gems II, 
   James Arvo (ed.)
   Academic Press 1991, ISBN 0-12-64480-0

Graphics Gems III
   David Kirk (ed.)
   Academic Press 1992, ISBN 0-12-409670-0 (with IBM disk) 
                        ISBN 0-12-409671-9 (with Mac disk)

Graphics Gems IV
   Paul Heckbert (ed.)
   Academic Press, 1994, ISBN 0-12-336156-7 (Mac)
                         ISBN 0-12-336155-9 (PC)

High Resolution Computer Graphics Using C
   Ian O. Angell
   Halsted Press 1990, ISBN 0-470-21634-4

Image Synthesis: Theory and Practice
   Nadia Magnenat-Thalmann and Daniel Thalmann
   Springer-Verlag 1987 ISBN 0-387-70023-4

Introduction to Computer Graphics
   J.D.Foley, A. van Dam, S. Feiner, J. Hughes, R. Phillips
   Addison-Wesley 1993, ISBN 0-201-60921-5

Mathematical Elements for Computer Graphics, 2nd Ed.
   David F. Rogers and J. Alan Adams
   McGraw-Hill 1990, ISBN 0-07-053530-2

Modern Image Processing
   Christopher Watkins, Alberton Sadun, and Stephen Marenka
   Academic Press 1993, ISBN 0-12-737860-X

Procedural Elements for Computer Graphics
   David F. Rogers
   McGraw-Hill 1985 ISBN 0-07-053534-5

Taking Flight
   Christopher D. Watkins and Stephen Marenka
   M&T Books 1994 ISBN 1-55851-384-1

Texturing and Modeling: A Procedural Approach
   David S. Ebert, F. Kenton Musgrave, Darwyn Peachey, Ken Perlin, and
     Steven Worley
   Academic Press Professional 1994 ISBN 0-12-228760-6

OTHER USEFUL BOOKS:

Programming graphics (especially real-time graphics) involves a lot of
optimization and efficiency considerations, which means that to
program graphics well you must be able to PROGRAM well.  Some other
books on programming that I have either heard rave reviews about or,
even better, I own and consider invaluable, are listed here with a
very short description.  Skip this part if you don't care (but you owe
it to yourself to at least give these books a look).

Advanced C++
James Coplien
Addison-Wesley ISBN 0-201-54855-0

The problem with a lot of books on C++ programming is that they
concentrate on C++ syntax and not enough on _style_.  Thus you learn
what various keywords mean, but few books touch on the topics of how
to USE the language.  This book does, and it does it extremely well.
It covers nifty things like the letter/envelope idiom; forwarding;
delegation; and other helpful things.

Algorithms (in C/C++/Modula 3)
Robert Sedgewick
"Algorithms" Addison-Wesley 1983, 0-201-06672-6
"Algorithms, 2nd Ed." Addison-Wesley 1988, 0-201-00673-4
"Algorithms in C" Addison-Wesley 1990, ISBN 0-201-51425-7
"Algorithms in C++" Addison-Wesley 1992, 0-201-51425-7
"Algorithms in Modula 3" Addison-Wesley 1993, ISBN 0-201-53351-0

These books, all basically the same theme reimplemented with different
languages, are considered modern day classics.  I am familiar with the
the C and C++ editions.  The code has been known to be buggy, and the
text is pretty terse, but all in all these are very useful references.
More implementation oriented than "Introduction to Algorithms" -- sort
of a "Knuth Lite Lite".  Used to be my primary book on algorithms
until "Introduction to Algorithms" kicked it out of first place.
Still a good book though, and I refer to it a lot.

The Art of Programming, vols. 1-3
Donald Knuth
Addison-Wesley

THE Holy Trinity of programming in general.  I don't own any of the
three books, mostly because I don't have 150 dollars just to toss
around and also because the rest of the algorithms book in my
collection cover the bases pretty well.  AoP, however, is considered a
classic and has some of the most exhaustive analyses of various
algorithms in print.  I definitely will be purchasing these books
at some time, but generally there are other books I'd rather have
before them.

Bitmapped Graphics Programming in C++
Marv Luse
Addison-Wesley
ISBN 0-201-63209-8

Of all the books available on bitmapped graphics and file formats,
this is by far my favorite.  Marv talks about a lot of interesting
topics that aren't directly related to file formats, for example he
covers dithering, memory management, color, etc.  This book is handy
for those real-time 3D graphics programmers that need to import a
bunch of different textures.

The C Programming Language, 2nd Ed.
Kernighan and Ritchie
Prentice-Hall

If you don't know C, buy this book NOW.  Great C reference, eminently
readable.  Wonderful wonderful book.  If you do know C already, then
you probably already OWN this book.  If you are learning C and trying
to do it with some lame SAMS/MIS Press/M&T/WaiteGroup/McGraw-Hill
cheezy trade paperback with a title like "Using Borland C++" or "C in
21 days" or "Learning C" or "Using C" or "Learning C by Example" then
you are doing yourself a disservice.  Get this book instead.
  Some prefer Harbison and Steele's _C: A Reference Manual_, Prentice
Hall, which I haven't seen, but you should at least look at it in the
bookstore if you get a chance.

The C++ Primer, 2nd. Ed.
Stan Lippman
Addison-Wesley
ISBN 0-201-54848-8

Everything that goes for "The C Programming Language" above applies
here also.  I like this book a bit more than Stroustrup's "The C++
Programming Language", but to each his own.

The Design and Evolution of C++
Bjarne Stroustrup
Addison-Wesley
ISBN 0-201-54330-3

If you have programmed in C++ a lot, then you've undoubtedly run
across parts of the language you thought were incredibly stupid or
poorly designed. I know I did.  This book offers a lot of insight into
how and why the language was designed the way it was, and because of
this I don't dislike C++ nearly as much as I used to.  It has its
deficiencies, but these are for a reason.  This book won't make you a
better programmer, but it may make you a better C++ programmer, or at
least a better informed one.

Introduction to Algorithms
Cormen, Leiserson, and Rivest
McGraw-Hill/MIT Press
ISBN 0-262-03141-8 (MIT Press)
ISBN 0-07-013143-0 (McGraw Hill)

A great book on algorithms and data structures....more digestible than
Knuth's "Art of Computer Programming" and more up to date, but not
quite as comprehensive...sort of a "Knuth Lite" if you will.  I've
found it to be my primary reference on algorithms and data structures.

Mythical Man Month
Frederick Brooks
Addison-Wesley

A wonderful book on how to manage a large project.  Not of much use to
a single programmer, but for someone who must program as part of a
team this book is a flat out necessity.  Very entertaining reading.
Dated, but relevant nonetheless.

Programmer's Guide to PC Video Systems, 2nd Edition
Richard Wilton
Microsoft Press
ISBN 1-55615-641-3

This book is a great introduction to both basic 2D graphics
programming and, as the name implies, PC video systems.  It's a bit
more readable than Ferraro's book, but doesn't have NEAR the amount of
depth.  Not a bad book, but not the best either.  Worth owning if you
do any amount of PC graphics programming, because some of the tips in
there are real useful.

Programmer's Guide to EGA, VGA, and SuperVGA Cards, Third Edition
Richard Ferraro
Addison-Wesley
ISBN 0-201-62490-7

This book is THE tome of knowledge for PC video systems.  It doesn't,
to the best of my knowledge, cover a lot of stuff like ModeX and what
not, but it has an amazing amount of depth when discussing basic
graphics theory, raster display technology, EGA/VGA/SVGA programming,
etc.  I mean, this is a MONSTROUS book.  It also covers graphics
accelerators, such as the ATI Mach32 and S3 chips.  Notably lacking is
information on VESA VBE.
  Since this book is only US$44.95, and is over 1500 pages long, it is
definitely a VERY good book to have in your collection if you're a PC
programmer.
  The book has its share of errors, but this is to be expected of any
book that is 1500 pages long and took about 14 months to write.  The
sections on programming the accelerator chips have some reasonable
amount of detail with them, but not enough to justify purchasing this
book as a reference on accelerators.  There's very little sample
source code, and a lot of his stuff is just taken out of the data
books.  I'd recommend getting the data books if at all possible, but
at least his book is a good overview of what's out there and what's
available and what different chips can do.
  Source code is NOT included on disk, and this is a significant beef
with a lot of folks.  I like it more for the programming examples than
any source code availability.

Programming Pearls and More Programming Pearls
Bentley
????

Great books -- kind of pricey though.  Litte anecdotes and stories
about programming "way back when", but some of the lessons on
optimization are invaluable for day to day programming tasks.  Really
good books, but just kind of expensive for their size (they're more
like pamphlets really).  If you have some extra dough, buy these
books, but they aren't real necessary.

Zen of Code Optimization
Michael Abrash
Coriolis Group Books, 1994
ISBN 1-883577-03-9

This is a PC oriented book, discussing code optimization topics both
general and specific to the Intel line of microprocessors.  Abrash is
extremely knowledgeable in the area of PC 2D graphics, having done a
lot of significant work at Video Seven, Metagraphics, and now
Microsoft; he was also a columnist for Dr. Dobb's Journal's "Graphics
Programming" column for a year or two.  He is also a columnist for "PC
Techniques" magazine.
  His first book, "Zen of Assembly", was extremely popular but is
currently out of print.  "Zen of Code Optimization" is a followup to
"Zen of Assembly", and includes some material from ZoA.  I really like
this book a lot, since he discusses both optimization by design and
implementation.  Chapters cover all kinds of optimization techniques,
both esoteric and standard.  A good book for PC programmers, not as
good for those who work primarily on, say, PowerPCs or MC68K
platforms.

OVERVIEWS:

Most of these books assume that you have a fairly firm grasp of
trigonometry, matrix and vector math, and possibly some other stuff.
Some of the books give a quick summary of the above, and Flights of
Fantasy sort of weasels out on the whole deal by letting you ignore
the nitty gritty math stuff -- but be forewarned, Flights of Fantasy
is pretty weak material as far as "advanced" stuff goes and you
probably won't learn a lot from it beyond the very basics.

The books are categorized as either being BEGINNER, INTERMEDIATE, or
ADVANCED.  Simple test (pretty crappy one, but it works for now): see
how many of the following phrases you are VERY familiar with --
i.e. you know the literal definition of it or you can implement it or
you know what it does.

Elementary:

  plane equation
  cross product
  surface normal
  unit vector
  matrix inverse
  identity matrix
  similar triangles
  parametric equation
  linear interpolation
  coordinate system

Intermediate:
  column/row-major matrix
  quadric surface
  quaternion
  Nyquist frequency and aliasing
  Euler angle
  oct-tree
  Phong shading
  Bezier curve
  Z-buffer
  floating horizon algorithm

Advanced:
  quadratic and cubic interpolation
  marching cubes algorithm
  shade tree
  inverse kinematics
  Coons patch
  Gaussian curvature
  A-buffer
  temporal aliasing
  trilinear mipmapping
  grammar-based modeling
  
BEGINNER:	00-10
INTERMEDIATE:	11-20
ADVANCED:	21-30

WARNING:  STAY AWAY FROM BOOKS WRITTEN BY LEE ADAMS.

I hate to get too opinionated about anything, since A.) I'm a graphics
professional and B.) I'm an author of graphics books and C.) I'm about
to get very opinionated about something in a very negative way.  Lee
Adams' books aren't worth the paper they are printed on.  They are
bad.  I mean REAL bad.  I mean, no doubt about it, there is no
question, they are REAL REAL REAL bad.  If ANYONE out there is a
serious graphics professional, has read the Adams stuff available, and
disagrees, PLEASE LET ME KNOW since I would like to add some balance
to my views.  Most folks who like his books, I hate to say, are
usually beginners in the field of 3D graphics and thus don't have much
to base an opinion on.  In a nutshell -- his code is very badly
written, buggy, ugly (no return values, no parameters, all globals,
lots of GOTOs, and three-letter variable names) and slow.  He doesn't
use lookup tables for trig functions, and does everything via systems
of linear equations instead of matrix concatenation.  His books were
bad enough that I almost gave up programming since they were sort of
my introduction to graphics programming -- "If this is what graphics
programming is all about, I don't want to get involved."  Yes, they
are THAT bad.

--------------------------------------------------------------
TITLE:		Advanced Animation and Rendering Techniques
AUTHOR:		Alan Watt and Mark Watt
PUBLISHER:	Addison-Wesley
FOCUS:		Photo-realistic images and animation
LEVEL:		INTERMEDIATE/ADVANCED
BINDING:	Hardcover
CODE:		C
SUMMARY:	Great book, but not a lot of real-time stuff.  Worth
		owning. 
PAGES:

This book is by far one of the best books in the field of 3D graphics.
Most of it covers static rendering and ray tracing, which means it is not
very useful for real-time graphics (like 3D on a PC, for example).  The
authors don't feel you are in "real 3d animation" territory until you have
a Z-buffer working and an incremental shading algorithm (preferably Phong)
with 24-bit true color.  Needless to say, few PCs have ANY of the above
real-time capabilities.

Even so, the stuff it covers is invaluable and very difficult to find
elsewhere.  We are talking heavy rendering and ray tracing stuff, volume
rendering techniques, shading languages, quaternions and Euler angles,
radiosity, inverse/forward kinematics, etc.  Excellent book, but not very
useful if you are looking to write only a game (although the chapters on
segmented object animation would be useful for robots/tanks).

--------------------------------------------------------------
TITLE:		3D Computer Graphics, 2nd Edition
AUTHOR:		Alan Watt
PUBLISHER:	Addison Wesley
FOCUS:		3d Computer Graphics
LEVEL:		INTERMEDIATE/ADVANCED
BINDING:	Hardcover
CODE:		Pascal
SUMMARY:	Must have classic.  One of the first you should get.
PAGES:

This is also one of those classic texts.  The new second edition covers a
lot of ground.  Watt's style is highly readable, if terse.  A complete
rendering system (or two) is supplied in the appendices, along with the
data file for the Utah teapot.
  The only drawback is that Watt states something once and only once -- he
expects you to catch on immediately.  Other than that, though, it is a good
book.  This is a MUST HAVE FOR 3D GRAPHICS PROGRAMMERS.
  The book has a fairly decent mix of interactive and photorealistic stuff,
and it is an excellent supplement to the 3d graphics section of Foley and
Van Dam.  Between the two you are pretty well set for 3d graphics.

--------------------------------------------------------------
TITLE:		3D Computer Animation
AUTHOR:		John Vince
PUBLISHER:	Addison Wesley
FOCUS:		3d Computer Graphics Animation
LEVEL:		INTERMEDIATE/ADVANCED
BINDING:	Hardcover
CODE: 		N/A
SUMMARY:	Great book -- low on code, high on explanations.
PAGES:

Excellent book on 3D animation in general.  Don't get the wrong idea,
however, because it's not about coding 3D animation libraries.  It's about
the field of 3D computer animation.  It's got a lot of technical stuff and
discusses a lot of the stuff in the field of 3D computer animation,
including packages available and the technology involved in the field.  A
damned good book, and if you do animations then it's a must have.  Some of
the algorithms described in it are real nice, and since it's recent it's
got some good information on newer rendering algorithms that some other
books don't have.  Highly recommended.

--------------------------------------------------------------
TITLE:		Computer Graphics: An Introduction to the Mathematics
                and Geometry
AUTHOR:		M.E. Mortenson
PUBLISHER:	Industrial Press
FOCUS:		Basic 2D and 3D geometry
LEVEL:		ALL
BINDING:	Hardcover
CODE:		None: uses mathematical equations
SUMMARY:	A great book that discusses the basics very well
PAGE:		381

This book is one of the great unknowns in the field.  It has a lot of
useful information on the basics of, as you would guess, the
mathematics and geometry.  It's not easy to read if you don't have a
strong math background, however used in conjunction with another book
it covers the basics EXTREMELY well.  Highly recommended.

--------------------------------------------------------------
TITLE:		Computer Graphics: A Programming Approach (2nd Ed.)
AUTHOR:		Steven Harrington
PUBLISHER:	McGraw-Hill
FOCUS:		Fundamentals of computer graphics
LEVEL:		BEGINNER/INTERMEDIATE
BINDING:	Hardcover
CODE:		Pseudocode
SUMMARY:	A good overall treatment on the area of computer
		graphics, concentrating mostly on the 'basics' and not
		on things like interface design etc.
PAGES:		465
DISK:		none

I'd never heard of this book until I stumbled upon it at a bookstore
quite by accident.  It's a very good book, albeit getting a bit long
in the tooth, and is a wonderful book that covers much of the
important areas of computer graphics (a la Foley, Van Dam, Feiner, and
Hughes, but without a lot of the excess stuff) in a fairly lucid
manner.  Some of his stuff is a bit cryptic -- the way he defines
polygons is display-file oriented, for example, and his viewing system
for 3D is identical to Foley and Van Dam's (actually, I believe FVD
based their viewing system on his), in that it is very very obtuse
with way too many variables (PHIGS is like this) that offer much more
flexibility than the average programmer needs or wants.

I don't like the pseudo code in this book, and at times you have to
almost turn your head sideways (figuratively) in order to figure out
what he's saying, but once you understand his angle you're set.  Some
stuff I would consider de rigeueur isn't present, such as texture
mapping, but once again, for the basics of hidden surface removal,
etc. this book is really really good.  Highly recommended, especially
if you are just building up your library.

TOC:

1.  Geometry and Line Generation (1-33)
	lines, line segments, perpendicular lines, distance between a
pint and a line, vectors, pixels and frame buffers, vector generation,
bresenham's algorithm, antialiasing of lines, thick line segments,
character generation, displaying the frame buffer

2.  Graphics Primitives (33-70)
	display devices, primitive operations, display-file
interpreter, normalized device coordinates, display-file structure,
display-file algorithms, display control, text, the liney-style
primitive

3.  Polygons (70-107)
	polygons, polygon representation, entering polygons, an inside
test, polygon interfacing algorithms, filling polygons, filling with a
pattern, initialization, antialiasing

4.  Transformations (107-146)
	matrices, scaling transformations, sin and cos, rotation,
homegeneous coordinates and translation, coordinate transformations,
rotation about an arbitrary point, other transformations, inverse
transformations, transformation routines, transformations and
patterns, initialization, display procedures

5.  Segments (146-172)
	segment table, segment creation, closing a segment, deleting a
segment, renaming a segment, visibility, image trqansformation,
revision previous transformation routines, saving and showing
segments, other display-file structures, some raster techniques

6.  Windowing and Clipping (172-205)
	the viewing transformation, viewing transformation
implementation, clipping, the cohen-sutherland outcode algorithm,
sutherland-hodgman algorithm, the clipping of polygons, adding
clipping to the system, generalized clipping, position relative to an
arbitray line, multiple windowing

7.  Interaction (205-244)
	hardware, input device-handling algorithms, even handling,
sampled devices, the detectability attribute, simulating a locator
with a pick, simulating a pick with a locator, echoing, interactive
techniques

8.  Three Dimensions (244-311)
	3D geometry, 3D primitves, 3D transformations, rotation about
an arbitrary axis, parallel projection, perpsective projection,
viewing parameters, special projections, conversion to view plane
coordinates, clipping in three dimensions, clipping planes, the 3D
viewing transformation

9.  Hidden Surfaces and Lines (311-345)
	back-face removal, back-face algorithms, Z buffers, scan-line
algorithms, the painter's algorithm, comparison techniques, warnock's
algorithm, frankling algorithm, hidden-line methods, binary space
partition

10.  Light, Color, and Shading (345-397)
	diffuse illumination, point-source illumination, specular
reflection, shading algorithms, smooth shading of surface
approximations, transparency, reflections, shadows, ray tracing,
halftones, color, color models, gamme correction, color tables,
extending the shading model to color,

11. Curves and Fractals (397-444)
	curve generation, interpolation, interpolating algorithms,
interpolating polygons, b splines, b splines and corners, curved
surface patches, bezier curves, fractals, fractal lines, fractal
surfaces

--------------------------------------------------------------
TITLE:		Computer Graphics: Principles and Practice, 2nd Edition
AUTHOR:		Foley, Van Dam, Feiner, and Hughes
PUBLISHER:	Addison-Wesley
FOCUS:		EVERYTHING
LEVEL:		ALL
BINDING:	Hardcover
CODE:		Pascal-like
SUMMARY:	The Bible of graphics.  First book you should buy.
PAGES:		> 1000

As Knuth's "Art of Computer Programming" is to algorithms, this book is to
computer graphics.  It covers just about every topic you need to know;
however, because of its scope it is very generalized and so information on
any one specific topic may be lacking.  Pascal-like pseudo code is strewn
liberally throughout the book, which is a big help.  Everything you would
expect in 3D graphics is covered, including shading, ray tracing,
radiosity, texture mapping, etc.  Once again, it's very generalized and
serves mostly as a good reference to other material and an overview of
individual areas.  But at over 1000 pages, it's a must have if you do
graphics.  If you can afford only ONE book on graphics, get this one.

--------------------------------------------------------------
TITLE:		Digital Image Processing
AUTHOR:		Rafael C. Gonzalez and Richard E. Woods
PUBLISHER:	Addison-Wesley
FOCUS:		Image processing (enhancement, restoration,
		compression, etc.)
LEVEL:		INTERMEDIATE/ADVANCED
BINDING:	Hardcover
CODE:		none
SUMMARY:	Great book on image processing, unfortunately nothing
		terribly useful for real-time computer graphics
PAGES:		716

I asked about books on image processing, and this is the one that
everyone recommended.  It is an outstanding book on the subject, from
what I can tell, but I'm not image processing guru.  When you look at
the TOC you'll see that very little of this applies to 3D graphics,
however I still think that the topics covered are useful enough that
if you can justify the cost you won't regret owning this book.

TOC:

2.  Digital Image Fundamentals
	elemts of visual perception, a simple image model, sampling
and quantization, some basic relationships between pixels, imaging
geometry, photographic film, 

3.  Image Transforms
	introduction to the fourier transform, the discrete fourier
transform, some properties of the two-dimensional fourier transform,
the fast fourier transform, other separable image transforms, the
hotelling transform

4.  Image Enhancement
	background, enhancement by point processing, spatial
filtering, enhancement in the frequency domain, generation of spatial
masks from frequency domain specifications, color image processing

5.  Image Restoration
	degradation model, diagonalization of circulant and
block-circulant matrices, algebraic approach to restoration, inverse
filtering, leas mean square (wiener) filter, constrained least squares
restoration, interactive restoration, restoration in the spatial
domain, geometric transformations

6.  Image Compression
	fundamentals, image compression models, elements of
information theory, error-free compression, lossy compression, image
compression standards

7.  Image Segmentation
	detection of discontinuities, edge linking and boundary
detection, thresholding, region-oriented segmentation, the use of
motion in segmentation

8.  Representation and Description
	representation schemes, boundary descriptors, regional
descriptors, morphology, relational descriptors

9.  Recognition and Interpretation 
	elemnts of image analysis, patterns and pattern classes,
decision-theoretic methods, structural methods, interpretation

--------------------------------------------------------------
TITLE:		Digital Image Warping
AUTHOR:		George Wolberg
PUBLISHER:	IEEE Computer Society Press
FOCUS:		Image warping and manipulation
LEVEL:		INTERMEDIATE/ADVANCED
BINDING:	Hardcover
CODE:		C
SUMMARY:	Very expensive for its size, but an invaluable reference
                on many subjects related to 3D graphics, specifically
                texture mapping and antialiasing
PAGES:		318

This is one REAL good book.  It doesn't apply to the field of 3D
graphics in general very well, however its treatments of subjects such
as antialiasing and texture mapping is extremely well done and one of
the best resources on the subject I've seen anywhere in print, short
of academic papers, theses, etc.  If you do texture mapping or
anything of the sort you NEED this book.  Be forewarned, though, that
it is very very very heavy on math.

--------------------------------------------------------------
TITLE:		Fast Algorithms for 3D Graphics
AUTHOR:		Georg Glaeser
PUBLISHER:	Springer-Verlag
FOCUS:		Optimized algorithms for interactive 3D graphics
LEVEL:		INTERMEDIATE/ADVANCED
BINDING:	Paperback
CODE:		C
SUMMARY:	Overpriced, pretty good, describes things not found in
		many other texts.  WAY too few pages.
PAGES:

This is a pretty good book.  It covers a lot of topics that many
traditional texts don't cover, such as optimized hidden surface removal
algorithms and "cheats" that get you good results.  It's platform
independent, and thus much of the code is portable.  A 3.5" diskette is
included, I assume for the PC (I haven't bothered looking).

The book does cover a wealth of information, however a lot of the
information is either stuff that many folks have figured out for
themselves, or stuff that is still less efficient than more popular
"tricks" that many games/sim programmers have relied on for years.
Also, the code is in C, not a big problem -- but they used an italics
font!  Not only that, the author is really into his math.  This isn't
a big problem, however I tend to get confused after about 20 Greek
variables have been introduced -- "Wait, was my theta field of view or
the distance factor?  And was phi our view normal or surface normal?"

I haven't messed with the code on disk, however according to others
it is highly SGI dependent, and getting it adapted to X isn't easy.
Supposedly DOS and OS/2 versions are supposed to be in the works.

All in all, a good book to have.  Kind of obtuse at times, kind of hard to
read at times, and a lot more academic that some would prefer, but still
definitely worth the shelf space and the money.

--------------------------------------------------------------
TITLE:		Flights of Fantasy
AUTHOR:		Chris Lampton
PUBLISHER:	The Waite Group Press
FOCUS:		Writing a 3d flight sim for the PC
LEVEL:		BEGINNER
BINDING:	Paperback
CODE:		C++
SUMMARY:	Good book if you're a beginner.  Technically flawed in
		many many areas, and laughable if you're experience in
		the field. 
PAGES:

A lot of controversy has been caused by this book, not because of its
content but because of widely varying opinions as to its quality.
Personally, I think that it is a great beginner's book, however the
rendering engine is incredibly primitive and inefficient.  It doesn't cover
shading, gradient fill sky lines, texture mapping, or just about any
graphics algorithm developed after, say, 1968.  The renderer is incredibly
crude -- if you are expecting something that will let you do a commercial
game, keep looking.  It dodges the math bullet fairly well, which I don't
like since if you REALLY want to know 3D graphics then you are going to
need to know the math.  It doesn't cover advanced video modes (320x240 or
320x400), SVGA programming, digitized sound, shading, etc.  A great
beginner's book, but you'll outgrow it soon enough.

--------------------------------------------------------------
TITLE:		Graphics Gems I-IV
EDITORS:	Glassner, Arvo, Kirk, Heckbert (respectively)
PUBLISHER:	Academic Press
FOCUS:		ALL
LEVEL:		INTERMEDIATE/ADVANCED
BINDING:	Hardcover
CODE:		(C and Pascal?)
SUMMARY:	Won't be commonly used references, but invaluable
		every now and then.
PAGES:

Some people swear by these books.  I don't know.  They cover a lot of
little tricks and tips for a lot of little things, but personally I haven't
found much use for them, but I'm looking only at the interactive 3D side of
things.  Every now and then a friend tells me "Wow, this one little
paragraph in Gems [X] gave me a huge insight into what I needed to do and
now my [program] is MUCH faster".  So to be fair, a lot of others have
found these books to be invaluable.  They cover a bit too much ground for
me, so I'm still kind of hesitant on recommending them to others since it's
not readily apparent if they will be helpful to you.  Your mileage may
vary.

Definitely look over these books before dismissing them, since they contain
a lot of application and domain specific tips that can be lifesavers.

--------------------------------------------------------------
TITLE:		High-resolution Computer Graphics Using C
AUTHOR:		Ian O. Angell
PUBLISHER:	Halsted Press ( John Wiley and Sons )
FOCUS:		general computer graphics
LEVEL:		ALL
BINDING:	Softcover
CODE:		K&R C
SUMMARY:	Not a waste, but definitely not a prize.
PAGES:		381

I have mixed opinions on this book.  On the one hand, I have found a
lot of helpful information in it.  On the other hand, everytime I open
it up something about it irritates me.  The most obvious flaw in the
book is that the C code is abysmally bad -- he makes regular use of
including .C files, for example.  He doesn't use ANSI C.  He indexes
his matrices from 1 instead of 0, and thus transformation matrices are
5x5 arrays of floats.  He uses a right-handed coordinate system and
column vectors, both of which I find unintuitive.
  However, his stuff still has proven itself useful to me on many
occasions, and I would miss the book if I didn't have it.  Generally I
use it as a corollary reference on some topics that can have different
ways of being explained, such as projection and clipping.  All in all,
I don't think it's a waste of money, but there are about 5 books I'd
buy before this one.

--------------------------------------------------------------
TITLE:		Image Synthesis: Theory and Practice
AUTHOR:		Nadia Magnenat-Thalmann and Daniel Thalmann
PUBLISHER:	Springer-Verlag
FOCUS:		general computer graphics
LEVEL:		ALL
BINDING:	Hardcover
CODE:		pseudo code
SUMMARY:	Good mix of basic stuff and real interesting advanced
		stuff, and there is a LOT of math
PAGES:		400
IMPORTANCE:	I like this book a LOT, but I don't think everyone
		will find it completely useful

This book is also fairly dated, however it has a lot of interesting
material in addition to the basic stuff.  Examples of this include its
chapters on fuzzy and soft objects, natural phenomena, and fractals
and stochastic models.  I don't consider this book a must have except
in certain instances, since it doesn't cover mcuh to do with
interactive 3D stuff.  Image synthesis, as you would guess, involves
creating an image out of a description of a scene, something typically
associated with static rendering (radiosity, ray tracing, or rendering
such as Renderman).

TOC:

1.  Modeling Primitives
	3D space, wire-frame, surface, and volume representations,
creating the database, procedural models and data abstraction

2.  Transformations, cameras, and colors
	image transformations, viewing system, colors, MIRALab virtual
camera model

3.  Free-form curves and surfaces
	introduction to curves and surfaces, smooth interpolation by
piecewise cubics, Coons surfaces, Bezier curves and surfaces, B-spline
curves and surfaces, beta-spline curves and surfaces, propagation
control graphics

4.  Solid modeling
	representation of solid objects, spatial occupancy enumeration,
cell decomposition, quadtress, and octrees, sweep representations,
constructive solid gemoetry, boundary representations, superquadrics,
global, and local deformations, solid modeling at MIRALab

5.  Visible surface algorithms
	object-space and image-space techniques, essential tests for
hidden-line and hidden-surface algorithms, depth buffer algorithm,
scan-line algorithms, list-priority algorithms, recursive subdivision
algorithms, algorithms for curved surfaces, visible surface algorithms
for solids

6.  Illumination, shading, and transparency models
	introduction to illumination, phong illumination model,
surface shading, light transmission

7.  Complex light-source and illumination models
	complex light sources, complex reflection models,
interreflection between surfaces and energy equilibrium

8.  Antialiasing and motion-blur
	aliasing problems, digital-processing convolution theory,
hidden-surface algorithms with anti-aliasing, edge-inference and
specific algorithms, temporal aliasing and motion blur

9.  Shadows
	role of shadows, shadows generated during display process,
shadow volumes, object-space polygon clipping approach, z-buffer
shadows, soft shadows and penumbrae

10.  Ray-tracing
	basic ray-tracing algorithm, ray tracing of sphere and
polyhedra, ray tracing of algebraic and parametric surfaces,
ray-tracing of surfaces defined by sweeping, depth of field and motion
blue, antialiasing, stochastic sampling, and distributed ray-tracing

11.  Optimization techniques for ray-tracing
	survey of optimization techniques, bounding volumes, use of
coherence in ray-tracing, space dividision for ray-tracing

12.  Texture
	what is texture, methods derived from texture analysis,
texture mapping, bump mapping, solid texture, ray-traced textures

13.  Fractals and stochastic models
	mandelbrot fractal geometry, formal approach: fractional
Brownina motion, random midpoint displacement algorithms, othe
researches on fractals

14.  Fuzzy and soft objects
	phenomena modeling, particle systems, soft objects, volume
desnity scattering models, cellular automata

15.  Natural phenomena
	synthesis of natural phenomena, representation of terrain and
mountains, representation of water, representation of sky, atmosphere,
clouds, and fog, representation of fire, representation of trees,
forests, and grass

16.  Combination and composite images for complex 3D scenes
	integrated scenes, compositing


--------------------------------------------------------------
TITLE:		Introduction to Computer Graphics
AUTHOR:		J.D.Foley, A. van Dam, S. Feiner, J. Hughes, R. Phillips
PUBLISHER:	Addison-Wesley
FOCUS:		general computer graphics
LEVEL:		ALL (oriented towards beginner)
BINDING:	Hardcover
CODE:		C
SUMMARY:	Good if you're a beginner, not of much use if you have
		the other books I mention in this list.
PAGES:

This book is "an abridged and modified version of Computer Graphics:
Principles and Practice."  It includes a lot of the material from "Computer
Graphics: Principles and Practice" and some new material.  The Pascalish
code has been redone in C, and it reorganizes the way in which topics are
presented.  Basically, a lightened up, stripped down, streamlined version
of "Computer Graphics: Principles and Practice" that doesn't cover a lot of
the more esoteric topics.  This book was written as a text book,
specifically for "[use] in a one-to two-semester courser in community
colleges or other two-year institutions."

--------------------------------------------------------------
TITLE:		Mathematical Elements for Computer Graphics, 2nd Edition
AUTHOR:		David F. Rogers and J. Alan Adams
PUBLISHER:	McGraw-Hill
FOCUS:		Math of computer graphics
LEVEL:		ALL
BINDING:	Hardcover
CODE:		pseudo-code
SUMMARY:	Great book, and a definite must have
PAGES:

Excellent book on curves, patches, and a lot of math.  Does not cover
rendering at all -- no shading, etc.  It does a lot of theory on
transformations in general, especially on the basics of matrices and how
they apply.  Great stuff on projections, too.  Lots of theory.  Don't
expect too much on object databases or implementation efficiency -- this
book is about math and theory, not implementation.  Sucks as a reference on
rendering algorithms, but for modeling in general and math it's wonderful.
Also, it has an insane amount of stuff on curves, splines, Bezier curves,
NURBS, Coons patches, surfaces, and basically anything that has to do with
math and graphics.  THIS BOOK IS INVALUABLE.  This book works extremely
well as a companion volume to "Procedural Elements for Computer Graphics",
also by Rogers.

--------------------------------------------------------------
TITLE:		Modern Image Processing
AUTHOR:		Christopher Watkins, Alberto Sadun, and Stephen Marenka
PUBLISHER:	Academic Press Professional
FOCUS:		2D image processing such as dithering, warping, etc.
LEVEL:		BEGINNER/INTERMEDIATE
BINDING:	Softcover
CODE:		C
SUMMARY:	Pretty useless book that explains concepts better
		explained elsewhere.
PAGES:		234

I hate to demean two books by the same author, but this book is pretty
much crap, although much better than Watkins other attempt at a book,
'Taking Flight', reviewed elsewhere in this text.  This book attempts
to cover the wide ranging field of image processing, including areas
such as warping, filtering, color reduction, etc.  Frankly, Wolberg
does a MUCH better job in "Digital Image Warping", and none of the
material presented in this book could not be found elsewhere, likely
in a form much more easy to read and technically lucid.

--------------------------------------------------------------
TITLE:		Procedural Elements for Computer Graphics
AUTHOR:		David F. Rogers
PUBLISHER:	Osborne McGraw-Hill
FOCUS:		ALL
LEVEL:		INTERMEDIATE/ADVANCED
BINDING:	Softcover
CODE:		Weird pseudo-code
SUMMARY:	Slightly dated, but a great book and a must have.
PAGES:

This is another book by the coauthor of "Mathematical Elements for Computer
Graphics".  This book covers a lot of the stuff that MECG doesn't cover.
Rogers' style is, in my opinion, incredibly dry, but then again, this is a
reference book and not "Gone With the Wind".  It covers most of the major
algorithms out there and explains enough where you can get some reasonably
decent working code from it.  As a basic reference it is EXCELLENT and
HIGHLY recommended.  However if you own most of the other books (Foley and
Van Dam, Watt's, Watt & Watt) then this book isn't going to be a big eye
opener -- no new algorithms are described, so if you know all of the major
ones then this book is going to be redundant.  However, if you haven't
started building up your library yet, then this book is a great start.  
  This book is a wonderful computer graphics algorithm reference.  Rogers
positions this book as the logical followup to MECG, and I agree
completely.  For example, MECG covers a LOT of ground in areas such as
coordinate transformations, perspective, etc.  whereas PECG doesn't cover
ANY of the aforementioned subjects.  It stresses rendering algorithms
typically at the polygon level, such as hidden line/surface removal,
shading, etc.  If you don't know your transformations, this book isn't
going to teach you.  As a quick reference, this book is great, too ("Gee,
how do I implement a scan line Z-buffer again?....").

--------------------------------------------------------------
TITLE:		Taking Flight
AUTHOR:		Christopher D. Watkins and Stephen R. Marenka
PUBLISHER:	M&T Books
FOCUS:		Flight simulation and graphics related to flight sims
LEVEL:		BEGINNER/INTERMEDIATE
BINDING:	Trade paperback
CODE:		C/C++
SUMMARY:	Real fluffy, but sample code may be useful to some.
PAGES:		368

Well, I was excited about this book since it looked like it would
cover some interesting material.  For the most part, it does, however
most of the material covered has little to do with 3D graphics.  This
is not a problem in and of itself, but since I'm interested in 3D
graphics waiting until Chapter 15 until we hit graphics is pretty
bothersome.  The first 14 chapters, believe it or not, are all about
the history and future and concepts of flight simulation.  From
Chapter 15 on we get into code, algorithms, etc.  The Table of
Contents is a tease, since none of the chapters actually discuss what
their chapter headings are.  The chapter on texture mapping and
shading doesn't describe any algorithms, show any code, and barely
touches on the concepts.  It refers you to the code on disk, believe
it or not.
  And the sample flight sim -- not impressed.  It's much better than
FOF's flight simulator, but not by much.  Here's a general clue --
pulling "up" on the stick will always cause your nose to go higher
RELATIVE TO THE WORLD.  So if you're upside down and you pull up,
instead of diving into the ground (or heading in that general
direction) you end up doing the equivalent of pushing on the stick.
Very non-intuitive, and I'm surprised they allowed that to be the way
things were done.
  Comparisons between this and Flights of Fantasy are inevitable.  I
think Watkins has a much better grasp of this material than Lampton
does, however Lampton at least makes a token (if flawed) attempt at
showing how things are done, as opposed to Watkin's "this is what
we're doing, but look at the code on disk to see how we implemented
this."
  Both are very short on substance, are very misleading in their
packaging, and are written by folks who don't know much about
real-time 3D computer graphics (or choose not to write like they do).
I realize this is harsh, but hey, I call 'em like I see 'em.

--------------------------------------------------------------
TITLE:		Texturing and Modeling: A Procedural Approach
AUTHOR:		David S. Ebert, F. Musgrave, Darwyn Peachey, Ken
		Perlin, and Steven Worley
PUBLISHER:	Academic Press Professional
FOCUS:		Procedural modeling of textures and solid spaces
LEVEL:		INTERMEDIATE/ADVANCED
BINDING:	Hardcover
CODE:		Renderman Shading Language and C
SUMMARY:	Great book on procedural modeling and texturing, a one
		of a kind in its field.  Wonderful stuff if you want
		to generate gases, cloudes, noise textures, etc.
PAGES:		332
DISK:		included (IBM 3.5")

This book concentrates on exactly one field -- applying procedural
models to texturing and modeling of solid objects that are difficult
to model otherwise (gases, clouds, fire, etc.).  This is a great book
and a wonderful reference, although it doesn't cover fundamental 3D
graphics algorithms except indirectly.  As a resource on building
different textures and how shading languages work, it is invaluable.
I don't regret purchasing it, that's for sure, even though I haven't
used it yet.  I know for certain that times will come up when I will
find it invaluable.

TOC:

2. Building Procedural Textures (5-101)
3. Practical Methods for Texture Design (101-143)
4. Procedural Modeling of Gases (143-163)
5. Animating Solid Spaces (163-193)
6. Noise, Hypertexture, Antialiasing, and Gesture (193-249)
7. A Brief Introduction to Fractals (249-267)
8. Fractal Solid Textures: Some Examples (267-295)
9. Procedural Fractal Terrains (295-311)

HOW DO I GET STARTED PROGRAMMING 3D GRAPHICS?

For some reason folks think that because I maintain this list that A.)
I know what I'm doing B.) I can give career advice.  My ego lets me agree
with A. but *I* wouldn't trust anything that I had to say with regards
to B. -- just beacuse I read a lot doesn't make me a qualified career
counselor!
  However, since I get questions fairly frequently such as "I'm new to
3D graphics, how can I get started programming and what books do I
need?" I figured I'd answer VERY shortly here.
  The single most important thing for me when starting programming was
to practice practice practice and practice some more.  WRITE CODE!
Don't just rip existing code out of some books and expect it to work
-- examine the algorithms, look at the math, and write your own code.
The first few times you do it it'll be slow, but hopefully you'll
understand what you're doing.  In order to be successful in this field
you have to work hard at it, and that means coding a lot, thinking a
lot, using a whiteboard, and accepting the fact that you aren't going
to have something incredibly cool on your computer screen for months
if not years (depending on how bright you are and how many hours
you want to dedicate to the field).
  If you are an absolute beginner, I recommend that you have the
following resources available:

	o	a decent computer
	o	a decent compiler
	o	a decent debugger (optional)
	o	two or three good references on graphics programming
	o	a whiteboard with dry erase markers
	o	a stack of legal pads
	o	lots tea, coffee, Coke, or Jolt
	o	lots of time
	o	lots of patience
	o	a good friend who knows this stuff to answer questions

Once you acquire the above, just go do it.  Don't worry if you don't
know how to do something or if you don't understand everything -- when
I started 3D computer graphics I had no clue what a matrix or a vector
was, yet I slogged through it all anyway and learned as I went along.
And this is important too -- if you don't understand something, don't
give up!  Maybe you won't get it right away, but after a few weeks,
months, or even years you'll have enough experience so that concepts
that you thought you'd never understand are now clear.  You HAVE to be
patient and can't expect to be a 3D graphics guru in a matter of a few
months.
  There's a lot to be said for taking college courses on the subject,
but even those by themselves aren't going to solve your problems.
I've seen way too many people with degrees in computer graphics who
don't have a clue what they're doing because everything they've
learned has been in the classroom and they've never bothered to
implement anything themselves.  I have actually met "graphics
programmers" who can't function without PHIGS or GL (these are
programming libraries for Unix and SGI workstations respectively).
  This is one of the few fields in computer science where experience
matters more than education, because a lot of the important things you
learn aren't in the text books.  The text books give you a solid
foundation in the mathematics and fundamental theory, but optimization
and implementation skills are honed only by doing things.  You MUST
have experience in order to be marketable.
  This is my opinion on the matter, take it for what it's worth.  I'm
sure others will have different opinions, but I can only vouch for
what I've seen and done.

PRIORITIZED LIST OF BOOKS:

One of the most common questions I'm asked is "If you could only have
[insert number here] books, what would they be?"  I choose to answer
this question based on what I do -- real-time 3D computer graphics.
Since this list concentrates on books on 3D graphics, I won't consider
other books that I would HAVE to have (Cormen, Leiserson, and Rivest
for example).  So here goes:

"Computer Graphics: Principles and Practice" -- This is THE bible of
computer graphics, and while weak on a lot of 3D stuff, this book
covers so much information that I would be at a loss without this book
since, if nothing else, it's a great reference to other books.

"Computer Graphics: An Introduction to the Mathematics and Geometry"
-- I really like this book, even though it covers the most basic of
material.  But it covers it well, and it's just a handy reference to
have around when you get momentarily confused on how to implement some
set of transformations or something similar.  Very handy.

"3D Computer Graphics, 2nd Ed." -- This book does 3D graphics and only
3D graphics and does it well.  Watt knows his stuff.

"Procedural Elements for Computer Graphics" -- A great summary of many
of the rendering algorithms out there, and a great all around
reference on graphics related to 3D.  Kind of dated, but you can't
have everything.

"Mathematical Elements for Computer Graphics" -- Wonderful coverage on
surfaces, curves, perspective projections, and matrices and vectors.

"Computer Graphics: A Programming Approach" -- A real good book that
covers the basics very well.  Covers a lot of the basics that are
either assumed or only touched on in the other books.

"Advanced Animation and Rendering" -- A little too heavy on some
static rendering stuff, but it covers other hard to find topics such
as inverse kinematics, hierarchical objects, etc.

After this it's a toss up.  I like "3D Computer Animation" even
thought it's more user oriented -- its descriptions of many algorithms
are much more lucid than many other books.  The Gems series are handy,
but expensive for the few times I've used them.  I definitely would
NOT buy Flights of Fantasy or Taking Flight, and I doubt I'd purchase
"High-Resolution Computer Graphics Using C" by Angell.

REVISION HISTORY:

2.21 -- Added review of Ferraro's "Programmer's Guide to the EGA, VGA, and
SuperVGA".  Also added a review of Wilton's "Programmer's Guide to PC Video
Systems, 2nd Ed."


2.30 -- Added some ISBN number corrections and a review of "Design and
Evolution of C++" by Stroustrup and "Bitmapped Graphics Programming in C++"
by Marv Luse

2.40 -- Added review of "High-resolution Computer Graphics Using C" by
Ian O. Angell.  Reformatted everything to fit within 70 columns.
Slightly redid the flame paragraph on Lee Adams.  Added "PAGES" and
"SUMMARY" lines to the various book reviews.

2.41 -- Added tiny bit about the code on "Fast Algorithms for 
3D Computer Graphics".

2.42 -- Added more ISBN numbers to the Algorithms books by Sedgwick,
and also slightly reworded the review to reflect all of the different
books.  (PS Thanks Jouni!)

2.50 -- Added review of "Taking Flight" by Watkins; added prioritized
list of books.

2.60 -- Short section on "How do I get started with 3D computer
graphics?"  Short section added to Introduction.  Slight change in
opinion on the Ferraro book

2.70 -- Review of "Digital Image Warping" added.

3.00 -- Reviews of "Computer Graphics: An Introduction to the
Mathematics and Geometry" and "Modern Image Processing".

3.01 -- Changed some of the framework text in he introduction, 
reworded some other stuff, etc.  No new reviews, minor changes
in diction only.

3.10 -- Moved to Silicon Valley and found the wonder that is the
Computer Literacy Bookstore :-) Purchased and reviewed the following
books: "Image Synthesis: Theory and Practice", "Digital Image
Processing", "Texturing and Modeling", and "Computer Graphics: A
Programming Approach".  I've started adding table of contents also so
that folks can see if a book covers material they are interested in.
-- 
+---------------------------------------------------------------------+
| Brian Hook  | Mail me if you want a comprehensive list of 3D books  |
|             | and references with reviews.                          |
+- "Style distinguishes excellence from accomplishment" - J. Coplien -+

