Release Notes

MeshvizXLM : new MoMeshVector rendering style
MeshvizXLM : new Edge Fading
RemoteViz : Monitoring API
ImageViz : Dental Panoramic API

The following document contains the release notes for the latest minor release 10.1.0 (January 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.

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


Open Inventor

  • Core performance enhancement: performances have geen greatly increased compared to Open Inventor 10. Time to First Render (delay between the moment when data are loaded and the first render on the screen) has been reduced up to 50% in some configurations (CAD, Static SoText3). Frame rate also benefits from general optimizations with an increase of 30% for static SoText3 for example, and even more as shown below for MeshViz XLM

 

 

  • SoMultipleInstance has been enhanced with new transparency properties. It is now possible to specify a transparency value per instance, using the new enum value TRANSPARENCY that has been added in SoInstanceParameter class
  • In order to make the API as clean as possible, all deprecated transparency modes have been removed. Starting with Open Inventor 10.1 only modes introduced in Open Inventor 10 are available. Please refer to the How to upgrade from 9 to 10 in this chapter and to documentation of SoGLRenderAction class (C++ / Java / .Net)

MeshVizXLM

  • MoMeshVector improvement (C++|Java)

    A new rendering style of the vector field is now available and allows vectors of the field to be drawn using a cylinder and a cone. To do so, the class MoMeshVector has been extended with the new public field thicknessFactor. It manages vector's aspect by controlling the radius of both the cylinder and the cone of each vector.

    Setting thicknessFactor to 0 will use the historical rendering style with a small lineset. Otherwise any other non-negative value will activate the new solid rendering style. As this new style is based on gpu ray casting performances between both mode are quite similar.

    Following pictures allow to compare, by moving the slider right or left, the result between thicknessFactor set to 0 (left) and set to 0.2 (right)

     

     

     

  • Single-Pass Face+Edge Rendering (C++|Java)

    Better rendering performance: Using a single pass to render both faces and edges, the frame rate has been greatly enhanced.

  • Edge fading improvement (C++|Java)

    A new algorithm to fade the edges of a mesh rendering is available. It has the following advantages compared to the previous version:

    • Many rendering artifacts disappear on edges (this picture shows some of these artefacts)
    • Edge fading, independently of any threshold value, is far more progressive than before

    The following image highlights the rendering improvement (left part is Open Inventor 9.9, right part Open Inventor 10.1) :

     

     

     

    Even if no new api has been added to activate this new fading algorithm, the way the field fadingThreshold is interpreted has changed. As the new algorithm is independent from any threshold, the public field fadingThreshold is now interpreted as a boolean. This means when fadingThreshold is set to 0 no fading effect occurs on edge rendering. If fadingThreshold is > 0 the new fading algorithm is tentatively activated.

    However there are some limitations, documented in MoDrawStyle::fadingThreshold, that prevent from using this new algorithm. In such cases this is the old algorithm that will be used, based on the floating value of the fadingThreshold field.

 

C++ Specific

Classes MoMeshLogicalSlice, MoMeshGridPlaneSlice and MoMeshInterpolatedLogicalSlice have been enhanced to handle any scalar set defined by an instance of MoScalarSet. Thus we suggest to use MoScalarSet instead of MoScalarSetI, MoScalarSetIj or MoScalarSetIjk


RemoteViz

  • Monitoring API

    Monitoring allows to ensure the healthiness of a system through debugging, profiling or even during production control. With Open Inventor 10.1, RemoteViz introduces an API for monitoring providing a flexible and non intrusive access to following metrics (list will be enhanced in future versions of RemoteViz)

    • Number of clients
    • Number of connnections
    • Number of Render Area
    • Network Latency per client
    • Encoding / Decoding time per connection
    • Rendering time per Render Area

    The generated output can be a simple log file, a custom solution or even compatible with some market solution like InfluxDB, Prometheus or Grafana.

     

     

    To help you starting with this new API, new examples have been added in packages
  • .NET - examples/source/RemoteViz/Monitoring/ : a basic example showing how to output metrics in a CSV file
  • Java - examples/remoteViz/monitoring/ : a basic example showing how to output metrics in a CSV file
  • C++ - examples/source/RemoteViz/Monitoring/ :
    • MonitoringCSV/ : a basic example showing how to output metrics in a CSV file
    • MonitoringGrafana/ : demonstrate a monitoring infrastructure using InfluxDB and Graphana (as illustrated below)

Medical Content

Automatic Panoramic

Added in Open Inventor 9.9.4, the DentalPanoramicExtractor new class is now available in Open Inventor 10.1 C++. It proposes a high level API dedicated to automatic dental panoramic extraction from a 3D CBCT volume (based on engines listed above). Contrarily to the already existing low level API, this new class allows to build a dental panoramic with only few line of codes.

The panoramic extractor can be tested with the new medicalDentalAutomaticPanoramic demo added in folder $OIVHOME/examples/bin/arch-<xxx>-Release/Medical/Dental in the Open Inventor package (only C++).

 


OS X

Open Inventor 10 is not yet available on this platform.