Release Notes


Open Inventor® 9.4  (May 2014) 

Older release notes

The following document contains the release notes for the latest minor release 9.4 (May 2014).

The current service release is 9.4.0. See the bugs fixed section for a complete list of issues resolved for each version.

Make sure to read the Compatibility Notes as well. They contain information about important changes in this release.

Finally, check the Life cycle topic for important information about Open Inventor platform support changes in upcoming release.

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

Open Inventor 9.4 introduces two new extensions:

  • RemoteViz- 3D graphics development SDK for interactive web-based applications
  • ImageViz Beta– 2D and 3D image processing and analysis SDK (the API is in beta status)

This new version also brings the capability to develop MeshViz XLM application in C# and many other improvements to the existing extensions, particularly by taking advantage of the latest evolutions in graphics cards to gain in performance and quality. 

Open Inventor

Support of Visual Studio 2013 update1

Open Inventor 9.4 brings the support of Visual Studio 2013 update 1  (32 & 64 bit support).

Open Inventor.NET for Visual Studio 2013 is based on the version 4.5.1 of the framework.NET.

New high-performance high-quality transparency algorithm

Model courtesy of INSIC.

A new single pass, order-independent transparency algorithm has been added to Open Inventor. It requires a graphic board with Open GL 4.2 or higher support.  Like the existing SORTED_LAYERS_BLEND algorithm, it does not require sorting objects or triangles in the scene to get correct transparency.  However unlike SORTED_LAYERS_BLEND it does not require multiple rendering passes.  As a result, performance is much better for the same image quality.

To use this new algorithm, set the transparency mode SORTED_LAYERS_BLEND or DELAYED_SORTED_LAYERS_BLEND using the SoGLRenderAction setTransparencyType() method. If your hardware does not meet the requirement, the previous algorithm will be automatically used. 

Camera interaction

The new class SoCameraInteractor provides some useful algorithms that allow easier development of a new custom camera behavior (translation, rotations, zoom, etc.) from a raw Open Inventor render area.

To illustrate the use of SoCameraInterractor a new example "SceneExaminer" has been added. This example shows an easily customizable node that provides most of the common services of an Examiner Viewer and can be used with any Open Inventor RenderArea in particular with WPF and RemoteViz components. 

Driver configuration

A new class SoDeviceSettings was added to enable Open Inventor applications to configure the graphic driver programmatically before the first OpenGL context creation. This class can be used to specify the driver profile required by the application, for example "Workstation App - Dynamic Streaming", or to set driver parameters like "Vertical Sync" that previously could only be set by the user through the driver control panel. For the moment, this feature only works with NVIDIA graphics boards.

Note: The IvReport tool now provides information about driver profile settings (when available).

SoTextProperty enhancements

  • New text style OVERLINE for SoTextProperty::Style

The style field of SoTextProperty now supports an overline mode. This style is widely used in math and science to represent for example: rotoinversion, sample mean, vectors, Boolean negation, complex conjugate, and so on:


  • New text property behavior

A new field styleColorsUseCurrentMaterial was added to SoTextProperty. This allows the use of the current SoMaterial for style colors instead of the color defined by the  SoTextProperty::styleColors field. 


SoHeightFieldRender performance and quality enhancement

The SoHeightFieldRender node is often used to visualize large "horizon" surfaces in seismic applications. For graphics hardware that supports tessellation (OpenGL 3.2 or higher) a new implementation is automatically provided. The new implementation brings many improvements:

  • Major performance improvement due to using tessellation shaders. The new algorithm can produce the same image quality with much fewer triangles (and therefore better performance).
  • The level of tessellation can now be controlled using an SoComplexity node.
  • Support for undefined cells as well as undefined vertices, see the new node SoHeightFieldPropertyMask.
  • A new interpolation method avoids artifacts around undefined values.
  • Option to draw cell outlines.

5000*5000 horizon with undefined values

Horizon with outline

Enhanced performance for texture generation (non-LDM and compressed volumes) 

Previously texture generation (packaging data to send to the GPU) was totally synchronous and tiles were processed one at a time, making it costly when loading non-LDM format data (e.g. DICOM) or using compressed tiles. To increase performance the texture generation step is now multi-threaded and asynchronous. This implies a better interactivity with non-LDM and compressed volumes. The LDM compression option allows volume data to use less disk space and less system memory (tiles are kept compressed in memory).


New transfer function: SoTransferFunction::LABEL_256

A new predefined transfer function is now available in VolumeViz.
The SoTransferFunction::LABEL_256 colormap can be accessed through the SoTranferFunction::predefColorMap field and can be used to quickly display a label field.

The colormap has been designed to be equally distributed in color wheel while having homogeneous luminance and balanced saturation.

Reader for LDM files with border

The SoVRLdmFileBorderReader class can be used to load previous LDM files with borders. To use it, you have to manually specify it to your SoVolumeData with the setReader() method. This reader is also able to read converted LDM files without performance penalties.

Note: that using this reader to load old LDM file has an impact on performances. Thus, we strongly recommend you convert your old files with the LDMConverter–update option. Especially as LDMConverter has been optimized and is now 4x faster!

New example isoline on a horizon 

A new example "HorizonIsolines" has been added to show how to draw isoline to SoHeightFieldRender using a custom shader.


New example for multiple transfer functions

A new example "MultiTransferFunctions" has been added to show how to use multiple transfer functions on single data.

Four transfer functions are applied

MeshViz XLM

C++ API Specific

Outline fading: rendering enhancement for edges of mesh cells

A new rendering style can be used in order to better render edges and vertices when they are displayed with the faces of mesh cells. This new rendering style can be activated by setting the new field MoDrawStyle::fadingThreshold. In some cases the density of cell edges (on portions of the mesh further away from the camera) could obscure the information represented by the cell face colors. The fading threshold allows edges and points displayed on a skin to vanish progressively depending on their size on screen. By default this rendering mode is disabled.

Without fading With fading

Optimization of mesh skin extraction 

Extraction time for mesh skin (MoMeshSkin) has been significantly reduced for the second and any subsequent extractions. This optimization applies only to meshes based on MiVolumeMeshHexahedronIjk or MiVolumeMeshVertexHexahedronIjk (these are the most often used mesh types for reservoir visualization).

A new internal cache avoids unnecessary cell face comparisons and unnecessary access to the cell filter (if any). Once two faces have been compared, they are not compared again even if a change occurs in the cell filter or the cell ranges. This cache is particularly efficient when moving a slab slice (MoMeshSlabSlice) and when changing the cell filter (MiCellFilter & MoCellFilter).

Optimization of isosurface and plane slice extraction

Large improvement in compute time to extract an isosurface or a plane slice on all mesh types.

Compared to MeshVizXLM 9.3, the computation time of MeshVizXLM 9.4 may be improved by a factor up to 4. The improvement depends on: mesh type, number of CPU cores and the way in which the mesh and cell filter interfaces are implemented in the application.

For instance the following diagram shows benchmark results when computing a plane slice on a grid of 400x300x400 using a volume mesh with the MiVolumeMeshHexahedronIjk interface.


.NET API Specific

Develop MeshViz XLM applications in C#

Starting with Open Inventor 9.4, the MeshViz XLM API is also available in C#, which enables you to develop mesh visualization applications in a .NET environment. The .NET implementation of MeshViz XLM provides the same level of features as the Java version of MeshViz XLM (some limitations compared to the C++ API).

Java API Specific

General polyhedral cells support for isosurface and plane slice 

MeshViz XLM Java already supports unstructured meshes containing standard tetrahedron, hexahedron, pyramid or wedge cells. With version 9.4, arbitrary polyhedral cell shapes are now also supported and are automatically handled by isosurface and plane slice extraction.

The following screenshot displays a green plane slice through the representation of the wireframe skin on a mesh containing numerous polyhedral cells. This image is a screenshot of the new java example meshviz.meshvizdatamapping.isosurfacePolyhedric:

Reduced memory consumption

Drastic reduction of memory used by skin, slab and outline extraction on HexahedronIJK mesh type (reservoir grid).The time between a shape extraction and its first rendering has also been drastically reduced.

RemoteViz, new extension

3D as a Service in your web-based application

Open Inventor RemoteViz enables software developers to easily integrate advanced 3D visualization into web-based applications.
Open Inventor RemoteViz brings rich remote 3D interaction and visualization capabilities to web-based applications, while maintaining a high level of interactivity and visual performance on any display device supporting HTML5 including tablet, phone, laptop, or workstation.
Current mobile devices allow for the development of interactive 3D applications that download data and render locally. However, most of these devices have limited bandwidth, computing power and storage capacity, which make visualization and interaction with 3D data very limited. 3D data can be extremely complex in terms of geometry (large number of triangles) and size (large volumetric data). Using local rendering means data transfer time is limited by the network bandwidth, data set size is limited by the local memory and rendering performance and image quality are both limited by the local graphics hardware. Transferring data to a remote device may also not be possible for data security reasons. To avoid such constraints, Open Inventor RemoteViz has been designed using a Service model: the data access, computing, and 3D rendering are performed on the server side by the Open Inventor RemoteViz service, while the Client side application only needs to provide the user interface and display each frame (image) sent from the server. No 3D hardware is required on the Client side.


  • During Open Inventor 9.4, RemoteViz will be distributed as a separate package.
  • RemoteViz is initially available as a C++ API for the Visual Studio 2010 & 2012 64bit platforms.

ImageViz Beta, new extension

2D & 3D image processing and analysis SDK

Specifically designed for application developers, the Open Inventor ImageViz software development toolkit (SDK) allows easy integration of advanced 2D and 3D image processing and analysis capabilities into imaging software applications.

ImageViz provides more than 300 image processing and analysis functions, including image enhancement, edge detection, arithmetic operators, global and individual measurements, and more. Combined with the Open Inventor 3D SDK, developers can build applications that handle the complete 2D/3D image processing, visualization and analysis workflow for any image acquisition system.


  • During Open Inventor 9.4, ImageViz will keep a beta status. Consequently, the API could slightly evolve in order to shape the most valuable tool.
  • The ImageViz Beta is initially available as a C++ API for the Visual Studio 2010,2012 & 2013 64 bit platform (note: Visual 2012 & 2013 version required Visual 2010 runtime).