Book Review: OpenGL Insights
OpenGL Insights edited by Patrick Cozzi and Christophe Riccio is collection of 44 articles about modern OpenGL programming, techniques and related topics. The articles itself account for 653 full colored pages, so each ‘insight’ is a compact portion of knowledge. This book does not only cover (desktop) OpenGL: 35 chapters are dealing with this API while 12 are helpful for OpenGL ES developers and 14 target WebGL (yes, they don’t sum up to 44 as some chapters are useful for more than one OpenGL variant).
It is not a beginners textbook, you should definitely know how to program in modern, aka OpenGL 3/4 core profile, GL. You don’t need to be an expert (maybe this book helps you to become one) but the basics should be known to you. This book is more for advanced readers who want to dig deeper into some OpenGL related topics.
A beginner might feel lost in this mix of bits and pieces: The book starts (after foreword and preface) with a list of mostly 1 sentence tips without much context and continues with nice word clouds of GLSL keywords used in the compatibility and core profile as well as OpenGL ES (the list of tips is also online). At the end you’ll get a map of the rendering pipeline of desktop GL and ES as a poster, nicely done but printed on both sides of the 14″ by 18″ poster, so if you want to hang it above your monitor, you’ll have to get a second copy of the book or print it yourself, it’s available online ;-) (ok, one side is OpenGL and the other is OpenGL ES + the texture pipeline of GL, so it’s fine) This mix might look a bit chaotic in the end it doesn’t hurt, the ‘bits’ itself are well thought thru (just look at the beautiful pipeline map again).
Content wise it is a mixed bag of topics as well, some ‘meta discussions’ like how to teach modern OpenGL to students might have a small target audience, but for this audience the experiences are quite helpful. Some chapters are quite basic introductions of certain sub-topics, e.g. WebGL, Shader Interfaces and the ARB_debug_extension. You can argue that you can get most of the same knowledge from the specs but let’s face it: Getting all shader interfaces and matching rules presented in a readable form with helpful diagrams and examples has a different quality than looking up the same facts in a huge pdf.
There are also more specific OpenGL related articles like building performance timers and measuring memory usage using vendor specific extensions. Other higher-level techniques and algorithms are more general, chapters that could as well come from a GPUPro or GPUGems book (e.g. Bokeh rendering). Apart from the examples being given in OpenGL and GLSL, these articles are not too OpenGL specific, but they show what is possible with modern GPUs and APIs and thus give an insight into the possibilities.
A nice plus is the github site with code for most of the chapters. The license differs from software to software and is not always clear (a mandatory license.txt file in each git on the top level would be nice) and some cross platform issues might occur but the good thing of a git instead of a DVD is that these projects are hopefully maintained further.
All in all this book is spanning topics from simple OpenGL feature descriptions up to general rendering algorithms and shows what is possible with OpenGL and its mobile and web-based cousins. You can find the table of contents as well as five sample chapters on the books website to get a better impression. If you are an OpenGL developer, you will definitely find some interesting gems in here, if there are enough bits for you to justify the expense depends on how well your interests match with the topics covered (take a look at the table of contents). I don’t regret getting a copy.