This article describes creation of the tutorials for building sample OpenSceneGraph application under Linux, macOS, Windows, and Android in April 2017.

Previous tutorials described how to install OpenSceneGraph under Linux, macOS, Windows and render a model using the standard osgviewer tool. This time we worked on a sample OpenSceneGraph application that would run under Linux, macOS, Windows, and Android.

The application is very basic and has the following features:

Render window creation

Model loading

Model rendering with simple GLSL shaders

Model motion with a mouse under Linux, macOS, Windows and a finger under Android

Creating the tutorials for Linux, macOS, Windows was so easy and straightforward, that it only took us half a month. We spent the second half of the month creating Android tutorial.

Our first successful Android build last year included hacks and non-obvious steps to make OpenSceneGraph run under Android. This time we wanted a cleaner, faster, and cheaper approach.

The approach we ended up with requires just a few files and a few changes to the original Android Studio project (with C++ support) to make sample OpenSceneGraph application run under Android.

Here's a quick rundown of the files:

GLES2 surface

Render activity to render to the surface

Native library Java interface

Native library C++ implementation

CMake file to build native library

Render activity layout

Model to display

Here's a quick rundown of the project changes:

Update Android manifest to use GLES2 and render activity

Reference native library's CMake file in the project's CMake file

OpenSceneGraph documentation suggests building OpenSceneGraph outside Android Studio with CMake. However, this approach has the following limitations:

You have to build OpenSceneGraph for each target architecture

You have to manually copy/reference built OpenSceneGraph libraries into Android Studio project

Our approach includes building OpenSceneGraph for those target architectures that Android Studio project is built for. Also, OpenSceneGraph is already referenced, so no extra work is required: you just need to rebuild the project, and you're done.

That's it for describing the creation of the tutorials for building sample OpenSceneGraph application under Linux, macOS, Windows, and Android in April 2017.