OpenSceneGraph 2.9.6 on the BeagleBoard
BEAGLEBOARD
OpenSceneGraph 2.9.6 on the BeagleBoard
2010-01-21
By
picoFlamingo

Hi there! Yes, OSG 2.9.6 includes OpenGL ES support and therefore support for OMAP based devices as the BeagleBoard. So we decided to try it, and that is what we achieved.
If you wonder why are we interested on this... Here is your answer :). There are lots of other reasons, but that's a good one for the picoFlamingo Team.

Getting something in the screen took a while. OSG compiles and runs as a charm using the OpenGL ES emulator from Imagination Technologies, however the shader compiler in the Beagleboard are not that robust and the first test was a bit frustrating. OSG compiled without any problem in the Beagle (no clue yet how to cross-compile with cmake... that would be really useful), but all we got was the nice OSG blue background color.

The main problem was that the shader compiler in the OMAP OpenGL ES libraries expects a precision identifier (like highp) for every single declaration including attributes, uniforms, varying and any single variable in the shader. We faced that problem during the development of the "Pink Egg", so we slightly modify a couple of files (osgUtil/ShaderGen.cpp osg/State.cpp as far as I remember) just to make the thing work. I'm not an OSG hacker I'm just an user, and fixing such a thing is beyond what my spare time allows me :).

Then we went from the blue background to a nice flat black model and finally we manage to hack the shader so see some simple models (no textures, no normal maps,...). Somebody with a lot more knowledge about OSG could fix it properly.

Ah!, by the way, with OSG you get stereo for free. In the video you can see the anaglyph stereo mode provided by OSG... You just need to set this two environmental variables:

export OSG_STEREO_MODE=ANAGLYPH
export OSG_STEREO=ON
Setting Anaglyph Stereo

Yes... that's it!

Looking forward for the next OSG release.

The picoFlamingo Team