Open Inventor® 10.3 (August 2019)

The following document contains the release notes for the latest minor release 10.3.0 (August 2019).

Because Open Inventor 10 was a major step in the history of the SDK, please refer to the upgrade path documentation to get all the needed informations and be sure you’re application is ready to be ported on his version of Open Inventor.

Important note: Since Open Inventor patch release 10.2.1, the DLLs and executables in the Open Inventor SDK are digitally signed for security. This should also avoid warning messages from anti-virus software.

See below the complete list of enhancements and new features included in Open Inventor 10.3.

Open Inventor Headless build

Introduced in Open Inventor 10.2, this package provides an implementation of Open Inventor specifically for “headless ” server machines. It uses the EGL library, allowing Open Inventor applications to run without starting an X Server (X11). For example, in a Docker based environment.

HardCopy and ImageViz, previously removed from this package, are now available, likewise the Debian package to easily install the product on your platform.

In order to use this package in your project, the following macro must be defined: OIV_HEADLESS.

Compared to the standard package, two limitations remain:

          • No viewers are provided so RemoteViz must be used
          • Some Open Inventor extensions are not provided:
            • DialogViz
            • Medical Library

To help you starting with this build a Docker (based on NVIDIA’s OpenGL Ubuntu 18.04 image) example has been added. For more details please read the file available in your Open Inventor Headless installation folder.

Please note that FlexNet floating license server version 11.16.2 (package available on download page) is mandatory to run this version of Open Inventor.

Open Inventor Headless build can be downloaded from the download page.

Support of new platforms, license and third party libraries

    • Starting with Open Inventor 10.3, Ubuntu 18.04 is fully supported. You can choose to install the package using our Debian archive (.deb file) or via the tar.gz file. Included with this new platform availability, the support of GCC 7 is now also available. New packages are available, for C++ and Java API, on the download page.
    • Oracle Java SE 11 : Open Inventor 10.3 has been tested against Oracle Java SE 11. The product is still being built using Java SE 8 but is compatible at runtime with Oracle Java SE 11. Of course, if any issue using Oracle Java SE 11 may occurs with your application you can still contact our support.
    • Open Inventor 10.3 now uses Qt 5.12.1.
    • All packages now require to use FlexLM v 11.16. You can find these packages on download page.

Open Inventor

    • FPS improvements
      The rendering performance (FPS) of large scene graphs containing many changes of material and/or transform has been drastically improved. A scene graph that is typically rendered faster with this version has many shapes and each shape has its own material and/or transformation.Materials can be either an instance of SoMaterial or SoBaseColor. Transformation can be either SoTranslation, SoRotation, SoScale, SoMatrixTransform, SoAntiSquish, SoTransform or SoResetTransform. This kind of scene graph is rendered drastically faster thanks to the new capability of Open Inventor to gather shapes into efficient bunches for rendering.

      The following charts illustrate the FPS improvement in such cases on different GPUs. In each benchmarck Medium Model contains ~44k shapes, Big Model ~286k shapes and Grid Model is made of 10 000 differents [SoMaterial/SoTransform/SoShape] organized in a 100×100 grid. Please note that these performances can only be reached using OpenGL 4.6.

    • Enhancement of image loadingThe ERDAS third party used for reading Jpeg files has been replaced by OpenJPEG. The OpenJPEG third party has also been upgraded from version 2.1.2-r3 to 2.3.0.


    • Texture classification by Machine Learning
      The SoSupervisedTextureClassificationProcessing2d and SoSupervisedTextureClassificationProcessing3d are no longer in preview and the API of these engines is now definitive. They propose now 2 new parameters:

      • An enumerate selecting a type of map image to output (selected class distance, relative distance to the second class or distance to each class).
      • An additional output which is a float image representing the uncertainty map (multi channels image in the distance to each class case).

      Compatibility Note : The maxClassDistance field used for selecting the most confident classification scores has been removed as it was redundant with the uncertainty map and could lead to confusion.

  • Automatic Dental Panoramic
    The DentalPanoramicExtractor class is now available in .NET.
  • New demo Vessel Detection 3D
    A new demo, illustrating the use of SoMultiscaleStructureEnhancementProcessing3d is now available in C++. Named VesselDetection3d it can be found in following folders:

    • C++ source : $OIVHOME/examples/source/ImageViz/Workflow/Medical/VesselDetection3D
    • C++ binary : $OIVHOME/examples/bin//ImageViz


    • RemoteViz now supports Google VP9 encoding/decoding using libvpx (CPU encoding/decoding). This new feature is exposed in the new demo called HelloConeVP9 available for
      • C++ : in folder $OIVHOME/examples/bin/<ARCH_FOLDER>/RemoteViz launch RemoteVizHelloConeVP9RenderingService.exe to execute the server service (under linux the binary is RemoteVizHelloConeVP9RenderingService). Then, with any supported web browser open $OIVHOME/examples/source/RemoteViz/HelloConeVP9/Clients/HTML5/index.html
      • Java : in folder $OIVJHOME/examples/remoteviz/helloconeVP9/helloconevp9renderingservice launch Main.jar to run the server service. Then, with any supported web browser open $OIVJHOME/examples/remoteviz/helloconeVP9/clients/html5/index.html
      • .NET : in folder $OIVNETHOME/examples/bin/<ARCH_FOLDER> launch HelloConeVP9RenderingService.exe to execute the server service. Then with any supported web browser open $OIVNETHOME/examples/source/RemoteViz/HelloConeVP9/Clients/HTML5/index.htmlSee below VP9 against H264 performances.
    • RemoteViz is now threadsafe, meaning each function can be called from any thread without problem in case of concurrent access. Added modifications have a negligible impact on the performance. The most “significant” impact on the performance comes from the addition of a mutexed access of objects EncodedFrame and FrameEncodingPolicy in the frame sending loop of a Connection (approximatively ~10µs / Frame). Please note that there is a small limitation on the class Service as described in documentation.
    • New API is available in case your application needs to perform some operation on RemoteViz’s context. In such case you can call the following function
SoGLContext* RemoteViz::Rendering::RenderArea::getGLContext( ) const


    • Fast memory access to data from DICOM files
      The new method SoVRDicomFileReader::loadInMemory allows to mount directly data from DICOM files in memory. It can be particularly useful to share a DICOM volume between VolumeViz and ImageViz without duplicating data.
    • Support of Scale and Offset metadata from Vox files
      If they are defined in the file header, the scale and offset fields of VOX files are now interpreted by SoVRVoxFileReader as follows: ReadValue = scale * FileValue + offsetTo avoid overflow issues the data is systematically converted from 8-bit to 16-bit when file values are rescaled (e.g., the file data may be 8-bits with an offset to apply equal to -1200).