All these three engines are open source, free to use and target multiple platforms. Irrlicht can use DirectX, OpenGL and software rendering. Ogre uses either OpenGL or DirectX and OpenSceneGraph uses OpenGL exclusively.

I’ve reviewed Packt books before and while all the books have quality content I never liked the print quality and the typesetting. The images look washed out and sometimes it’s a bit hard to see what’s in the image. Hopefully they can improve this in future releases.

But of course, content is king. So what does this beginner’s guide have to offer?

First of all, this is not a guide for people who aren’t familiar with 3D programming. This book assumes you have basic knowledge of 3D concepts, C++, design patterns and OpenGL. This means it’s a beginner’s guide for people unfamiliar with OpenSceneGraph. A good thing because the focus is on the engine itself and not the basics that most readers know anyway.

The approach behind this book is “learn by doing: less theory, more results”. I have to say that the authors (Rui Wang and Xuelei Qian) did a tremendous job. There’s a good balance between theory, code samples and explanation. After the obligatory introduction and compilation & installation chapters they’re diving straight into the code. Basics like memory management, reference pointers and logging are explained and then they move on to building geometry models, managing the scene graph, rendering effects, animation, interaction and storage. The book ends with a very useful chapter about rendering efficiency that deals with multi threading, culling, quad trees and data paging.

By reading this book you really get to know OpenSceneGraph very well. You’ll not only learn about 3D but also about things like smart pointers and design patterns. Some things I really like about OpenSceneGraph are the way you can use polygonal techniques (simplifier, smoothing, tesselator, etc), functors and level-of-detail management. By using the polygon reduction class called “Simplifier” you can auto-generate low-polygon models that you attach to an LOD node. Extremely powerful stuff.