[comp.graphics] Top Ten Hit Parade

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.