JavaScript is not enabled in your browser
Objexx Engineering

OpenSceneGraph

OpenSceneGraph provides real-time 3D visualization for ObjexxSISAME. OpenSceneGraph is a powerful and high-performance platform for 3D technical visualization that is a great fit for ObjexxSISAME.


ObjexxSISAME GUI with OpenSceneGraph

OpenSceneGraph Windows Binaries

Recent Windows binary packages of OpenSceneGraph have not been readily available. Since building OpenSceneGraph takes some effort Objexx is providing them as a service to the OpenSceneGraph community.

OpenSceneGraph Windows Downloads

Here are the currently available OpenSceneGraph Windows packages. Only 64-bit binaries are provided at this time.

OpenSceneGraph 3.6.5 (VC2022 2023/01 Build)

Plugins/Notes
  • curl 7.87.0
  • FBX 2020.3.2
  • ffmpeg 4.4.1
  • freetype 2.12.0
  • GDAL 3.0.6
  • giflib 5.2.1
  • glut 3.7
  • libjpeg 9e
  • libpng 1.6.39
  • libtiff 4.5.0
  • minizip git
  • zlib 1.2.13
  • osgQt git + custom port to Qt 6 (new osgQOpenGL approach: old osgQt approach not supported in Qt 6) built with Qt 6.4.2
  • The default OpenGL GL2 level was used
  • These Visual C++ 2022 OSG binaries should be binary compatible with applications built with Visual C++ 2017, 2019, and 2022

OpenSceneGraph 3.6.5 (VC2022)

Plugins/Notes
  • curl 7.82.0
  • FBX 2020.3.1
  • ffmpeg 4.4.1
  • freetype 2.12.0
  • GDAL 3.0.4
  • giflib 5.2.1
  • glut 3.7
  • libjpeg 9e
  • libpng 1.6.37
  • libtiff 4.3.0
  • minizip git
  • zlib 1.2.12
  • osgQt git + custom port to Qt 6 (new osgQOpenGL approach: old osgQt approach not supported in Qt 6) built with Qt 6.2.4
  • The default OpenGL GL2 level was used
  • These Visual C++ 2022 OSG binaries should be binary compatible with applications built with Visual C++ 2017, 2019, and 2022

OpenSceneGraph 3.6.5 (VC2019)

Plugins/Notes
  • curl 7.68.0
  • FBX 2020.0.1
  • freetype 2.10.1
  • GDAL 3.0.4
  • giflib 5.2.1
  • glut 3.7
  • libjpeg 9d
  • libpng 1.6.37
  • libtiff 4.1.0
  • minizip (git master)
  • zlib 1.2.11
  • osgQt (old osgQt + new osgQOpenGL approach) built with Qt 5.14.1
  • The default OpenGL GL2 level was used
  • These Visual C++ 2019 OSG binaries should be binary compatible with applications built with Visual C++ 2017 or 2019

OpenSceneGraph 3.6.4

Plugins/Notes
  • curl 7.66.0
  • FBX 2020.0
  • freetype 2.10.1
  • GDAL 3.0.1
  • giflib 5.2.1
  • glut 3.7
  • libjpeg 9c
  • libpng 1.6.37
  • libtiff 4.0.10
  • minizip git
  • zlib 1.2.11
  • osgQt (old osgQt + new osgQOpenGL approach) built with Qt 5.13.2
  • The default OpenGL GL2 level was used

OpenSceneGraph 3.6.3

Plugins/Notes
  • curl 7.61.1
  • freetype 2.9.1
  • GDAL 2.3.2
  • giflib 5.1.4
  • glut 3.7
  • libjpeg 9c
  • libpng 1.6.35
  • libtiff 4.0.9
  • minizip git
  • zlib 1.2.11
  • osgQt built with Qt 5.11.2
  • The default OpenGL GL2 level was used

OpenSceneGraph 3.4.1

Plugins/Notes
  • curl 7.56.0
  • freetype 2.8.1
  • giflib 5.1.4
  • glut 3.7
  • libjpeg 9b
  • libpng 1.6.34
  • libtiff 4.0.8
  • minizip git
  • zlib 1.2.11
  • osgQt built with Qt 5.9.2
  • OpenGL GL2 level was used

OpenSceneGraph 3.4.0

Plugins/Notes
  • curl 7.48.0
  • freetype 2.6.3
  • giflib 5.1.4
  • glut 3.7
  • libjpeg 9b
  • libpng 1.6.21
  • libtiff 4.0.6
  • minizip git
  • zlib 1.2.8
  • osgQt built with Qt 5.6
  • OpenGL GL2 level was used
  • The AVX2 builds are for Haswell and newer generation CPUs and have the potential of better vectorization performance.
  • It is best to use an AVX2 OSG build with an application built with AVX2 support to avoid AVX-SSE transition penalties.
  • The Intel C++ build is compiled with /fp:fast=2 so it may give slightly reduced precision.
  • The Intel C++ build is binary compatible with Visual C++ 2015.

Additional Builds

Additional builds (Intel C++, GCC, Clang, 32-bit, ...) and plugins can be requested. We hope to add more of the optional 3rd party libraries such as Collada in future builds. Let us know if specific plugin support would be helpful.

Performance

We tested and profiled the different builds with our ObjexxSISAME application using a benchmark designed to make the OSG calls dominate the run time. Here's what we observed:

  • The AVX2 builds gave no benefit with either compiler. This is not surprising given that OSG, by necessity, depends heavily on non-contiguous data and indirection, limiting opportunities for vectorization.
  • The Intel C++ build (with /fp:fast=2) was not faster than the Visual C++ builds. This is a little surprising: we usually get some performance gains with Intel C++ even when vectorization is not significant.
  • Profiles when running on Intel iGPU were dominated by calls to osgUtil::RenderLeaf::render.
  • Profiles when running on nVidia dGPU were not giving consistent, meaningful results with Intel VTune. We will try nVidia's profiler next.

Our use of the OSG API is fairly basic/limited so our findings are not indicative of all aspects of OSG performance. We'll be experimenting with other build options and looking deeper into the profiling results in future OSG builds. But for now the builds all work fine and the Visual C++ (non-AVX2) release build should be best for most users.

Installation

These are compressed with 7-zip and can be installed by expanding them from the desired parent directory, for example:

  C:\>7z x OpenSceneGraph-3.6.5-VC2022-64-Release.7z

The installation directories can be renamed if desired. They can be uninstalled by simply removing the OpenSceneGraph installation directory.

Support

Contact support@objexx.com with questions about these packages.