saponara@batcomputer.tn.cornell.edu (John Saponara) (04/11/88)
With all the discussion of comp.graphics.newuser, I thought I'd post something I wrote a few months ago and updated today. I hope some of you will find it of use. Send me your recommendations and I will post a summary. --Eric (not John Saponara) Haines Top Ten Hit Parade of Computer Graphics Books One of the most important resources I have as a computer graphics programmer is a good set of books, both for education and for reference. However, there are a lot of wonderful books that I learn about years after I could have first used them. Alternately, I will find that books I consider classics are unknown by others. So, I would like to collect a list of recommended reading and reference from you all, to be published later in the year. I would especially like a recommendation for good books on filtering and on analytic geometry. Right now I am reading _Digital Image Processing_ by Gonzalez and Wintz and have _A Programmer's Geometry_ on order, but am not sure these fit the bill. _An Introduction to Splines for use in Computer Graphics and Geometric Modeling_ by Bartels/Beatty/Barsky looks like a great resource on splines, but I have read only four chapters so far. _Computational Geometry_ by Preparata and Shamos also looks good, though right now it's simply on my reading list (i.e. gathering dust on the shelf). Without further ado, here are my top ten book recommendations. Most should be well known to you, and so are listed mostly as a kernel of core books I consider useful for computer science in general and graphics in particular. I look forward to your additions. _The Elements of Programming Style, 2nd Edition_, Brian W. Kernighan, P.J. Plauger, 168 pages, Bell Telephone Laboratories Inc, 1978. All programmers should read this book. It is truly an "Elements of Style" for programmers. Examples of bad coding style are taken from other textbooks, corrected, and discussed. Wonderful and pithy. _Fundamentals of Interactive Computer Graphics_, James D. Foley, A. Van Dam, 664 pages, Addison-Wesley Inc, 1982. A classic, covering just about everything once over lightly. _Principles of Interactive Computer Graphics, 2nd Edition_, William M. Newman, R.F. Sproull, 541 pages, McGraw-Hill Inc, 1979. The other classic. It's older (e.g. ray-tracing did not exist at this point), but gives another perspective on various algorithms. _Mathematical Elements for Computer Graphics_, David F. Rogers, J.A. Adams, 239 pages, McGraw-Hill Inc, 1976. An oldie but goodie, its major thrust is a thorough coverage of 2D and 3D transformations, along with some basics on spline curves and surfaces. _Procedural Elements for Computer Graphics_, David F. Rogers, 433 pages, McGraw-Hill Inc, 1985. For information on how to actually implement a wide variety of graphics algorithms, from Bresenham's line drawer on up through ray-tracing, this is the best book I know. However, for complicated algorithms I would recommend also reading the original papers. _Numerical Recipes_, William H. Press, B.P. Flannery, S.A. Teukolsky, W.T. Vetterling, 818 pages, Cambridge University Press, 1986. Chock-full of information on numerical algorithms, including code in FORTRAN and PASCAL ("C" programs are in a separate, pricey volume). The best part of this book is that they give good advice on what methods are appropriate for different types of problems. _A First Course in Numerical Analysis, 2nd Edition_, Anthony Ralston, P. Rabinowitz, 556 pages, McGraw-Hill Inc, 1978. Tom Duff's recommendation says it best: "This book is SO GOOD [<-these words should be printed in italics] that some colleges refuse to use it as a text because of the difficulty of finding exam questions that are not answered in the book". It covers material in depth which _Numerical Recipes_ glosses over. _C: A Reference Manual_, Samuel P. Harbison, G.L. Steele Jr., 352 pages, Prentice-Hall Inc, 1984. A comprehensive and comprehensible manual on "C". _The Mythical Man-Month_, Frederick P. Brooks Jr, 195 pages, Addison-Wesley Inc, 1982. A classic on the pitfalls of managing software projects, especially large ones. A great book for beginning to learn how to schedule resources and make good predictions of when software really is going to be finished. _Programming Pearls_, Jon Bentley, 195 pages, Bell Telephone Laboratories Inc, 1986. Though directed more towards systems and business programmers, there are a lot of clever coding techniques to be learnt from this book. Also, it's just plain fun reading. [p.s. a sequel just came out] As an added bonus, here's one more that I could not resist: _Patterns in Nature_, Peter S. Stevens, 240 pages, Little, Brown and Co. Inc, 1974. The thesis is that simple patterns recur again and again in nature and for good reasons. A quick read with wonderful photographs (my favorite is the comparison of a turtle shell with a collection of bubbles forming a similar shape). Quite a few graphics researchers have used this book for inspiration in simulating natural processes.