Overview

New C++ installer

For the C++ toolkits, this new version is now delivered in a single package including libraries, API reference manual and demonstration programs. On Windows, all Visual Studio projects are pre-generated and can be used without requiring any additional configuration.

New Open Inventor Sample Browser

All C++ demonstration programs are now pre-built and ready to be used after installation. The new Open Inventor Sample Browser program, ivBrowser, is a nice utility tool to browse and launch these programs.

Documentation delivery

Since Open Inventor 8.5, the Open Inventor developer zone contains the full set of Open Inventor documentation (user's guide and reference manuals). Note that the API reference manuals are also provided as HTML or native CHM files on Windows. The full Open Inventor Developer Zone content can be downloaded as a separate package for off-line browsing (off-line browsing does not allow advanced search).

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

Make sure to read the Compatibility Notes as well. They contain news about important changes in this release.
Finally, check the System Requirements topic for important news about Open Inventor platform support changes in this release.

Open Inventor

Multitouch API

Open Inventor 9.1 introduces a new set of events to handle touch screen input including multi-touch and gestures. SoTouchEvent, SoGestureEvent, SoGestureRecognizer and SoTouchManager have been added to the API for enabling complex event management. These features are immediately available on Windows 7 using SoWin or SoQt based viewers. Other platforms will come later. The src/Inventor/examples/MultiTouch folder contains several examples of multi-touch applications.

File reader plug-ins

Geometry file readers are now implemented in dynamically loaded plug-in libraries. This new architecture allows Open Inventor to import new file formats using the SoInput class without having to rebuild the Open Inventor kernel. Custom readers can be developped by deriving from the new SoInputReader abstract class. A sample implementation of a STL reader (stereolithography) developed using this method is provided in source code in the src folder along with the StlToIV demonstration program.

The following readers are available in Open Inventor: OpenFlight, DXF, STL, CATIA5(*), IGES(*), STEP(*).

(*) Requires a separate license.

New FXAA Antialiasing mode

The new FXAA (Fast Approximate AntiAliasing) antialiasing mode can be used to reduce the hardware ressources needed when turning on antialiasing. This mode uses a GPU shader post-processor to antialias the image.

Simplified API for antialiasing

The control of antialiasing is now fully implemented in the SoSceneManager class. The new AUTO mode automatically selects the best settings for the current hardware configuration. For more details on previous API, see the compatibility notes.

The transparency modes SORTED_LAYERS_BLEND and DELAYED_SORTED_LAYERS_BLEND have been improved to reduce the memory consumption on the GPU while keeping the same performances.

SoText2 performance improvement

The drawing of text with SoText2 has been optimized, and performance improvement can reach up to a factor 3.

New platform: MAC OS X

Open Inventor 9.1 is now available on MAC OS X.7 with GCC 4.2. This version has been tested and validated with ATI boards.

Support of Intel HD graphic boards

GLew updated to version 1.7

VolumeViz

Users guide reviewed

The VolumeViz Users guide has been completely rewritten to take into account the latest evolutions and techniques introduced in the product. Many missing information have been added or clarified, obsolete functions have been removed and the whole document has been reorganized.

VolumeRender Composition Mode

This new mode specifies the way SoVolumeRender will choose a voxel or combine voxels along each sampling ray. Five modes are available: Alpha, Min, Max, Sum, Average. In Alpha mode it combines the colors of voxels along the ray based on their opacity. In Min and Max modes it renders the color and opacity corresponding to the min or max data values along the ray. In Sum and Average mode it renders the color and opacity corresponding to the sum or average of the data values along the ray. (This mode replaces the obsolete composition field inherited from SoVolumeShape which did render true min and max values.)

Exemple of Composition mode:

Minimum intensity

Maximum intensity

Average intensity

Reduced slicing artifacts

The boolean viewAlignedSlices field in SoVolumeRender has been replaced with an enum field samplingAlignment. This field specifies how/where the ray-casting algorithm begins sampling along each ray. VIEW_ALIGNED (default) means that samples are located on planes perpendicular to the view direction. DATA_ALIGNED means that samples are located on planes perpendicular to one axis of the volume. The new value BOUNDARY_ALIGNED means that samples are located on shells aligned with the volume's internal "boundary" (first non-transparent voxels found). This last mode significantly reduces "slicing" artifacts for many volumes.

Ambient occlusion rendering mode

This new rendering mode (SoVolumeRenderingQuality) produces a nice lighting effect without the overhead of lighting computation. The resulting image is an approximation of global illumination similar to an outdoor environment.

Volume Group enhancement

In previous versions, when two overlapping volumes needed to be rendered, they had to be children of the same SoVolumeGroup node. This limitation has been removed and thus they can now be child of separate Volume Groups.

Height field render mode supports undefined values

When rendering height fields, undefined values are now taken into account when interpolating.

Volume Mask and Volume Group enhancements

The volume mask and group management has been optimized to reduce the memory consumption and improve performances.

MeshViz XLM (C++ API only)

Improved memory error handling

When a memory overflow occurs inside MeshViz extraction tools, the SoMemoryError callback is now called to allow the application to release some memory.

Extends cell shape representation to support line mesh

The MoMeshCellShape node supports now line mesh classes implementing the following interface:
MiLineMeshUnstructured, MiLineMeshRegular and MiLineMeshCurvilinear.
This allows for instance to visualize line cells with a shrink factor. Non linear line cells are also supported.
Thus, MoMeshCellShape can be used for instance to highlight a selection of cells in a line mesh (pick and highlight picked cells).

New extractor classes MiLineCellExtractUnstructured and MiLineCellExtractI: these extractors allow to transform a line mesh into a list of line cells and into a list of points. These extracted cells can be shrunk by a given scale factor.

Updated demo
<OIVHOME>\src\MeshVizDataMapping\QuadraticLine
Quadratic line mesh displayed without tesselation (red), and with a geometric tesselator (white). The second line cell of this mesh is higlighted (green) by using a MoMeshCellShape.

Intersection between a line mesh and a plane

A new node MoMeshClipPoint displays the points representing the intersection between a line mesh and a plane.

A new extractor MiClipPointExtract builds a point mesh based on the intersection of a line and plane.

New demo
<OIVHOME>\src\MeshVizDataMapping\ClipPoint
This demo displays the intersection between the red line mesh and the plane defined by the jack dragger.

Enhance non linear mesh draw style when displaying edge and points

When a MoTessellator is inserted in the scene graph with a MoDrawStyle enabling the field displayEdges and/or displayPoints the surface rendering is enhanced by removing edges and/or points introduced by the tessellation process. This enhancement applies to MoMeshSurface, MoMeshSkin, MoMeshOutline, MoMeshLine and MoMeshCellShape.

The displayPoints mode uses the new extractPoints methods added in several extractor classes. These methods return a new MeXPointMeshCurvilinear derived from the new interface MiPointMeshCurvilinear.

Updated demo:

<OIVHOME>\src\MeshVizDataMapping\QuadraticWheelHexa27

<OIVHOME>\src\MeshVizDataMapping\QuadraticSurface

MeshViz XLM (JAVA API only)

Slab slicing

This new extractor allows to produce a very efficient rendering of a slab of cells in one direction for IJK meshes.

New extractor class MiSlabExtractUnstructuredIjk. New Open Inventor node MoMeshSlab.

New Demo:

<OIVJHOME>/demos/meshviz/meshvizdatamapping/slab

Updated demo:

<OIVJHOME>/demos/meshviz/meshvizdatamapping/eclipsemeshviz

Cylinder and sphere slicing

Cylinder and sphere slicing can be extracted and rendered on MiVolumeMeshHexahedronIjk.
New extractor classes MiCylinderSliceExtractUnstructuredIjk and MiSphereSliceExtractUnstructuredIjk.

Picking

The new package com.openinventor.meshvizinterface.mapping.details allows application to get detail information on a picked mesh. Usually starting from an OpenInventor ray pick action, the application is now able to get the picked cell in the mesh, the value at the picked point, the picking mesh etc...

New methods getInputCellIdI/J/K() and hasInputCellMapping() in the interface of extracted mesh MeXTopologyI and MeXTopologyIJ.

New demo:

<OIVJHOME>/demos/meshviz/meshvizdatamapping/picking

Updated demo:

<OIVJHOME>/demos/meshviz/meshvizdatamapping/eclipsemeshviz

Optimizations

The skin extraction on MiVolumeMeshHexahedronIjk has been optimized.

The plane slice extraction has been optimized.

API Specific

.NET API Specific

New WPF components

The new OIV.Inventor.Wpf.SoWpfRenderAreaSource class allows to manipulate an Open Inventor render as an WPF ImageSource object. So an Open Inventor scene graph can be used to brush any WPF component. Furthermore The new OIV.Inventor.Wpf.SoWpfRenderArea class provides a way to smoothly integrate an Open Inventor render area in an WPF application (no air space restriction).

Java API Specific

Miscellaneous

New methods intersection in classes com.openinventor.inventor.SbBox*

Mixing JOGL and OpenInventor Java

New capabilities to mix JOGL code and OpenInventorJava. For instance an OpenInventor scene graph can be rendered inside a window created by JOGL. New demos showing mixing JOGL code with OpenInventor code:

<OIVJHOME>demos/inventor/contrib/OivJogl

<OIVJHOME>/demos/volumeviz/contrib/VvizJogl

Packaging of native librairies

The JNI wrapping native library (previously OpenInventorJNI), has been split in several JNI wrapping lib.

Now, the native runtime part of OpenInventor Java is composed of all OpenInventor C++ libraries and the following list of JNI wrapping libraries:

com.openinventor.volumeviz

com.openinventor.solidviz

com.openinventor.scaleviz

com.openinventor.meshviz

com.openinventor.ldm

com.openinventor.inventor

com.openinventor.hardcopy

com.openinventor.fxviz

com.openinventor.directviz

Hotline & support

If you want to get the best out of your products, our Technical Support Team is available to assist you in any question, request, or technical issue that you may have.

FEI Visualization Sciences Group is the leading provider of advanced 3D visualization and analysis software tools for developers, engineers and scientists in natural resources, medical and life sciences, and engineering.