Graphics Gems - Edited by Andrew S. Glassner

This famous book covers a large number of little tricks and tips in doing graphics. Being the predecessor to various other lines of 'gems' books, someone indeed asked me if it was the predecessor to the 'GPU Gems' series. As it comes from the late eighties/early nineties boundary, it was probably old-hat by the time I was first aware of it, ancient by the time I bought it, and now it's mostly interesting for nostalgia value!

At the time of release, top-end framebuffers had resolutions smaller than pretty much and bog-standard monitor today. The fastest workstations would be handily beaten by a bog standard PC of a decade ago. So, the book unsurprisingly focuses on making simple algorithms go fast. So, no subsurface scattering anisotropic blah here. Plenty of fixed point and avoiding multiplications where possible. There's an optimised approximate square root, as well as the classic swap-variables-using-xor, and an introduction to using quaternions to represent rotations. Lots of classic stuff.

So, it's a blast from the simpler, more low-level past. It's a lot of fun. There were a few dodgy gems, but mostly there are plenty of neat tricks, albeit ones that aren't really applicable today. I also finally learnt about a few things that I'd heard of, but never actually seen. So, for example, Sturm sequences for root-finding are very intriguing. I'd seen the name before in ray-tracer configurations, but never actually found out what they're about.

In terms of its intended use, I can't really recommend it. In terms of igniting an interest in fun graphics toys again, it's great. Thanks to the intervening decades, it's now quite possible to implement all the algorithms mentioned in high-level languages, and still have the performance be perfectly acceptable. So, despite the prevalence of GPUs, it's actually getting tempting to write toy scanline renderers again, for example! Modern practicality: Nil. Fun: Enough to overflow your 16-bit registers.

Posted 2013-04-17.