From: bwh@netcom11.netcom.com (Brian Hook) Subject: 3D BOOK LIST 3.20 Date: Sat, 11 Feb 1995 20:41:29 GMT 3D Graphics Book List 3.20 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. REVIEW REQUESTS: If you are an author or a publisher and would like me to review one of your books, please do not expect me to run right out and purchase the book in question. I've spent over $1600 on my library so far, and roughly one out of very four books I find to be complete crap, and another one out of four are absolutely wonderful. The majority, however, are 'okay'. Because of this, I'm not willing to risk my money on books that may not be useful to me or, alternatively, are in a subject area I find less than relevant. If you are an author or a publisher and are willing to provide books, as some publishers have done, then by all means contact me and I will give you an address to send them at. DISAGREEMENTS: If you are an author (or staunch supporter) of one of these books and you 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. 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. ACKNOWLEDGMENTS A big thanks to all of you have sent out corrections, updated information on ISBN numbers, suggestions on books I should investigate, spelling corrections, etc. . This book list wouldn't be complete without that information. Also, I would like to thank Addison-Wesley for providing a review copy of 'Digital Image Processing'. 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 State of the Art in Computer Graphics: Visualization and Modeling David F. Rogers and Rae Earnshaw, ed. Springer-Verlag 1991 ISBN O-387-97560-8 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/Waite Group/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 and sometimes very difficult to read. -------------------------------------------------------------- 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, both Wolberg (Digital Image Warping) and Gonzalez (Digital Image Processing) do much better jobs with this material. -------------------------------------------------------------- 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: State of the Art in Computer Graphics: Visualization and Modeling EDITOR: David R. Rogers and Rae Earnshaw PUBLISHER: Springer-Verlag FOCUS: Current trends and techniques in computer graphics LEVEL: INTERMEDIATE/ADVANCED BINDING: Hard cover CODE: Depends on the paper SUMMARY: VERY good couple of papers in here PAGES: 368 I stumbled upon this book because I was hunting for a paper that described texture mapping very well. I was pointed at the paper by Heckbert and Moreton in this volume by Chris Hecker, for which I am pretty much eternally grateful. This is an outstanding collection of papers because of their comprehensive handling of the areas covered. Of particular note are Whitted's paper on the evoluation of 3D graphics architectures, Cohen's paper on radiosity, and, of course, Heckbert and Moreton's paper on interpolation for polygon texture mapping and shading. Upson's paper on volumetric visualization techniques is also quite good. The other papers are good, but not of immediate interest to me because they cover modeling and GUI technology. TOC: 1. Hardware/Parallel Processing: - Franklin C. Crow, "Graphics Algorithms for Parallel Machines" - Turner Whitted, "Evolution of 3D Graphics Architectures" 2. Image Generation - Michael F. Cohen, "Radiosity" - Paul Heckbert and Henry Moreton, "Interpolation for Polygon Texture Mapping and Shading" - Alain Fournier, "Random Processes in Computer Graphics" 3. Modeling - Roy Hall, "Supporting Complexity and Conceptual Design in Modeling Tools" - Michael John Muuss and Lee Butler, "Combinatorial Solid Geometry, Boundary Representations, and n-Manifold Geometry" - Les A. Piegl, "Rational B-spline Curves and Surfaces for CAD and Graphics" 4. Graphical User-Computer Interfaces - James Foley, "Software Tools for Designing and Implementing User-Computer Interfaces" 5. Visualization - Craig Upson, "Volumetric Visualization Techniques" -------------------------------------------------------------- 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, transformations, 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. "State of the Art in Computer Graphics" -- GREAT book if only for the papers by Heckbert/Moreton and Whitted. The other material is a bonus (Upston's article for example). 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. 3.11 -- Minor updates to framework text 3.20 -- Added review of "State of the Art in Computer Graphics: Visualization and Modeling" -- +---------------------------------------------------------------------+ | Brian Hook | Mail me if you want a comprehensive list of 3D books | | | and references with reviews. | +- "Style distinguishes excellence from accomplishment" - J. Coplien -+