OpenSceneGraph

From FlightGear wiki
Jump to navigation Jump to search
This article or section contains out-of-date information

Please help improve this article by updating it. There may be additional information on the talk page.

An UML class diagram disclosing the associations between some classes of the FlightGear source code.

Historically FlightGear has used PLIB instead of OpenSceneGraph. FlightGear 1.9.0, released December 22, 2008, marked the release of the OSG version of FlightGear. While much of the conversion to OSG has happened over the years, PLIB is still used for some functions.

Downloading OpenSceneGraph

Note  as of 12/2017, people may have to build using at least OSG 3.4 due to some compilation issues -for details, refer to Howto:Building FlightGear without HiDPI support

The latest stable release of OpenSceneGraph is recommended for building FlightGear from git.

You should use the unstable development releases (or build OSG from git) only if you intend to develop FlightGear against new features under development in OpenSceneGraph. For all other cases the latest stable release of OpenSceneGraph is usually the best option.

Downloading Stable OpenSceneGraph

The OpenSceneGraph project uses Subversion (SVN) to distribute their sources.

Note: The source code should not be downloaded to the build.osg directory, or the build will not work correctly. See below.

To download the latest stable version of OpenSceneGraph use:

   svn checkout http://svn.openscenegraph.org/osg/OpenSceneGraph/tags/OpenSceneGraph-3.0.1 OpenSceneGraph

Manual Download: If you don't want to use SVN, you can also pick a stable release from the OSG download page:

http://www.openscenegraph.org/index.php/download-section/stable-releases

If the main OSG site is down (frequently) you can also use one of its various mirrors:

http://www.freebsd.org/cgi/pds.cgi?ports/graphics/osg

OpenSceneGraph developer versions

FlightGear developers may want to use a development release of OpenSceneGraph:

   svn checkout http://svn.openscenegraph.org/osg/OpenSceneGraph/tags/OpenSceneGraph-3.1.6 OpenSceneGraph

You can replace the "3.1.6" by future development OSG versions (if known to be compatible with FlightGear).

Alternatively, developers interested in today's OSG development can download the current OSG trunk.

WARNING: The sources of current OSG development aren't always compatible with FlightGear. Only use these if you're interested in OSG development or developing new OSG features for FlightGear:

   svn checkout http://svn.openscenegraph.org/osg/OpenSceneGraph/trunk OpenSceneGraph

Compiling OpenSceneGraph

OpenSceneGraph uses cmake. Since OSG version 2.7.3 (8th Oct 2008) a relatively new version of cmake is required. According to OSGs CMakeLists.txt it's 2.6.1 but cmake 2.6.0-5 from backports.org for Debian/Etch does the trick. It's also possible to comment out lines 25 to 27 in OSGs CMakeLists.txt:

#    if(POLICY CMP0008)
#        cmake_policy(SET CMP0008 OLD)
#    endif(POLICY CMP0008)


A minimal build instruction for unix systems is

mkdir build.osg
cd build.osg
cmake ../path/to/osg/source
make
make install

On other systems the steps might be different.

Recommended options to set in the cmake menus:

  • Build type: Release
  • You don't need to build the examples, wrappers or applications.

Installing OpenSceneGraph and FlightGear with --prefix

If you use --prefix to choose were to install FlightGear and do not want to install OSG globally on the system this can be done with the following method:

OpenSceneGraph uses cmake so to build it do

 mkdir build.osg
 cd build.osg
 cmake -D CMAKE_BUILD_TYPE="Release" -D CMAKE_CXX_FLAGS_RELEASE="-O3 -pipe" -D CMAKE_C_FLAGS_RELEASE="-O3 -pipe" \
       -D CMAKE_INSTALL_PREFIX:PATH="${MY_PREFIX}" ../path/to/osg/source
 make
 make install

or if you want to avoid needing to set LD_LIBRARY_PATH

 mkdir build.osg
 cd build.osg
 cmake -D CMAKE_BUILD_TYPE="Release" -D CMAKE_CXX_FLAGS_RELEASE="-O3 -pipe" -D CMAKE_C_FLAGS_RELEASE="-O3 -pipe" \
       -D CMAKE_INSTALL_PREFIX:PATH="${MY_PREFIX}" -D CMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOLEAN="true" ../path/to/osg/source
 make
 make install


Configure and build SimGear and FlightGear with --prefix as usual.

No need to install any quickly changing software globally.

Installing with --prefix is a very nice way to keep several distinct and independent versions of FlightGear around. To start a new $PREFIX directory you'll also need to install plib in it, but that is easy. Most other needed dependencies are usually available through the package system of most Linux distributions (e.g. FreeGLUT, SDL, ALSA, etc).

lib64

Content moved to Talk:OpenSceneGraph for now.

External link