A Short Introduction to the Basic Principles of the Open Scene Graph


This is the prologue for a series of posts teaching the most important concepts for anyone learning to use the Open Scene Graph (OSG).

I am writing this in 2017, not in 2010, as the post date indicates. But, please, let me explain the reason for this little untruth. I am converting my old homepage this a blog-like thing. This was just the way I found to adapt the content I originally released in May 2010 to this new format.

There are three posts in A Short Introduction to the Basic Principles of the Open Scene Graph:

These three parts cover what I consider the most important concepts, the ones you absolutely need to know before doing anything significant with OSG.

Originally, I planned for three more parts:

  • Part 4: Render Bins and the Traversals
  • Part 5: Event Handling (and maybe node callbacks)
  • Part 6: Node visitors

As of 2017, given the twists of life, I’d say that I am very unlikely to ever write these missing parts — unless life twists again, who knows.

Goals and audience

This is designed as a very introductory guide to OSG, which is an excellent toolkit for the development of 3D software. The focus here is on the concepts. My goal is to teach the main ideas behind OSG, not its details. So, I recommend you to frequently look at the OSG reference documentation while you read this text. I don’t assume previous knowledge of OpenGL, but knowing it certainly will make learning OSG much easier. I assume some familiarity with C++, though I have added clarifications on one or two aspects I see people frequently misunderstand.

Source code

The source code for the example programs used in this guide is available for download. The archive also contains a 3D model made by myself (appropriately called “ugly_ship.obj”), that you may want to use when testing the programs.

Further reading

Specifically concerning the Open Scene Graph, I recommend Paul Martz’s OSG reference documentation.

I also recommend you to learn OpenGL, because the Open Scene Graph is very closely related to it. The canonical OpenGL book is the “The Open GL Shading Language. It is not an easy reading, but I cannot really recommend any other OpenGL book, because I didn’t read them. Learning The Open GL Shading Language (GLSL) is also useful, and I think that the standard GLSL book (”The Open GL Shading Language, AKA The Orange Book) is pretty fine.

OSG is open source, so, reading its source code is possible and very educational.

The links below allow you to buy some OpenGL books from Amazon.com. If you buy anything through these links, I’ll earn a small commission from Amazon. It doesn’t cost more to you, and will make me pretty happy.