OpenSceneGraph: Difference between revisions

Jump to navigation Jump to search
1,212 bytes removed ,  19 December 2024
Update, list respective branches from the FlightGear fork
(Remove obviously obsolete texts)
(Update, list respective branches from the FlightGear fork)
Line 1: Line 1:
{{Out of date}}
[[File:Flightgear uml associations class diagram.png|thumb|270px|An [[UML Diagrams|UML]] class diagram disclosing the associations between some classes of the FlightGear source code.]]
[[File:Flightgear uml associations class diagram.png|thumb|270px|An [[UML Diagrams|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.
'''OpenSceneGraph''' (OSG) is an open source 3D graphics application programming interface, used by [[FlightGear]] since version 1.9.0 (2008), when it replaced [[PLIB]]. While much of the conversion to OSG has happened over the years, PLIB is still used for some functions. As of 2022, the OSG project has moved all development effort to its successor [https://vsg-dev.github.io/vsg-dev.io/ VulkanSceneGraph] (VSG). FlightGear has not yet made the switch to VSG.


== Downloading OpenSceneGraph ==
== 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]]}}
Because the OSG project is no longer officially maintained, current versions of FlightGear require a forked version of OSG that comes with several improvements and fixes. The fork is hosted on {{repo link |site=gitlab |proj=flightgear |repo=openscenegraph |full=1}}, with a specific branch for specific versions of FlightGear, as outlined in the table.
 
'''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 ===
{| class="wikitable"
The OpenSceneGraph project uses [http://svnbook.red-bean.com/nightly/en/index.html Subversion (SVN)] to distribute their sources.
! FlightGear major version !! OSG branch
 
|-
'''Note''': The source code should not be downloaded to the build.osg directory, or the build will not work correctly. See below.
| 2020 || {{repo link |site=gitlab |proj=flightgear |repo=openscenegraph |branch=OpenSceneGraph-3.6 |text=OpenSceneGraph-3.6}}
 
|-
To download the '''latest stable version''' of OpenSceneGraph use:
| 2024 || {{repo link |site=gitlab |proj=flightgear |repo=openscenegraph |branch=release/2024-build |text=release/2024-build}}
 
|-
    svn checkout http://svn.openscenegraph.org/osg/OpenSceneGraph/tags/OpenSceneGraph-3.0.1 OpenSceneGraph
| Next || {{repo link |site=gitlab |proj=flightgear |repo=openscenegraph |branch=next |text=next}}
 
|}
'''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 ==
== Compiling OpenSceneGraph ==
{{Out of date}}


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 [http://backports.org/dokuwiki/doku.php backports.org] for Debian/Etch does the trick.
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 [http://backports.org/dokuwiki/doku.php backports.org] for Debian/Etch does the trick.
Line 50: Line 25:
  #        cmake_policy(SET CMP0008 OLD)
  #        cmake_policy(SET CMP0008 OLD)
  #    endif(POLICY CMP0008)
  #    endif(POLICY CMP0008)


A minimal build instruction for unix systems is
A minimal build instruction for unix systems is
Line 87: Line 61:
   make
   make
   make install
   make install


Configure and build SimGear and FlightGear with --prefix as usual.
Configure and build SimGear and FlightGear with --prefix as usual.
Line 94: Line 67:


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).
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 ==
== External link ==

Navigation menu