Author: Randi J. Rost, Bill Licea-Kane, Dan Ginsburg, & John M. Kessenich
Publisher: Addison Wesley, 2009
Aimed at: Users of Open GL
Pros: Big book that covers all aspects
Cons: Still a complex subject
Reviewed by: David Conrad
You can be an expert in graphics, 3D geometry, textures or what ever but shaders are something quite different. This area of graphics programming is one of the most difficult to break into. To master shaders needs a cross between a low level understanding of the graphics hardware and the mind of an assembly language programmer. The catch is that even if you know all this stuff you still have to figure out how it fits into the bigger picture and integrates with what you are doing in the main program.
This book starts off following the usual introduction to shaders and this might leave you just as confused as ever - but this is a big book. If you keep going then it will eventually make sense - or rather it has a better chance of making sense than most approaches. The chapter that introduces the "brick" shader is perhaps the one that is make or break in that if you haven't got it after this example you probably aren't going get it.
From this point things get more detailed until you know nearly everything you need to know about OpenGL shader language.Of course there is still the bigger picture to make shaders fit in with the rest of of your program but that takes time.
This isn't a perfect book on the subject, but it is the one you need if you are interested in OpenGL shaders.