I planned on spending two weeks reading this, but because of delays it took me three weeks to complete Peter Shirley’s “Fundamentals of Computer Grahpics.” To be honest, as a game developer I am not nearly as interested in computer graphics as I am other aspects of the field. And for that reason graphics programming is perhaps my weakest skill-set as a programmer. Therefore I have been reading books such as these to make myself more useful in that capacity.
So how much did this particularly book help?
A Great Reference
Shirley is thorough about his subject matter. Computer graphics and mathematics are inseparable, but the author does not hesitate to use any math to explain his pointns or important concepts. In other words, you absolutely must feel comfortable with reading and understanding calculus, polynomials, linear algebra—things like that. Otherwise all you’re going to see is a bunch of crazy Greek letters mixed inside of math operators. The book at least provides some small chapters to help refresh your memory about such math.
Shirley lays out the important subjects with his chapters, e.g:
- Raster Algorithms
- Signal Processing
- Surface Shading
- The Graphics Pipeline
- Efficient Data Structures for Said Pipeline
- Light Sources
- Color Spaces
And more. Each chapter is comprehensive in its dissection of the subject at hand. It reinforces this at the end with lists of frequently asked questions, preempting what I would suspect many readers would want to know. And it presents a series of optional excersises to help test your understanding of the material.
Reading the book from cover to cover is a bore, or at least will be to many people. However, its thorough coverage of fundamental computer graphics concepts make it a great reference to have on hand. I can’t really recommend it as a book to read from start to finish, but this is a great book when you need to lookup something specific like the details about the pros and cons of raytracing.
Next Book of the Week
Next week I am reading “Introduction to Machine Learning” by Nils J. Nilsson et al. I am hoping to find some ideas that about writing bots which I could then apply to the enemies in my game.