Project: OCCT visualization tools

Project leader: Kirill Gavrilov (kgv)
Forum: Visualization

Overview

Historically, the visualization component was included into OCCT, it was a natural choice in early 1990's.
In spite of the fact that nowadays there is a number of powerful 3D visualization solutions available on the market, OCCT 3D visualization component still evolves.
It is simple and compact, it includes native support for OCCT topological data, and it uses hardware acceleration for rendering large geometry. All this makes it a reasonable choice for fast development of OCCT-based applications.

As many commercial customers use OCCT visualization capabilities, the evolution of this component is driven by commercial development requests and technical ideas coming from OCC staff and the community.

Agenda '2017

The following development tasks are likely to be addressed in the coming OCCT releases.

General Improvements

  • MeshVS redesign for better scalability on big mesh data sets.
  • Multi-texturing and Bump textures.
  • Introduction of visualization LODs.
  • Order-independent transparency.
  • 2D grid improvements.

Evolution '2016

The following development tasks have been taken into account in OCCT 7.1.0 release:

Programmable rendering pipeline

Programmable rendering pipeline (GLSL programs) is now used by default, although deprecated Fixed-Function pipeline (FFP) is still available for compatibility.
This migration opens the door for new advanced visualization techniques in future - some of them have been introduced within previous releases (e.g. Anaglyph and Row-interlaced stereoscopic output).

Manipulator Tools

New tool has been introduced - AIS_Manipulator, providing convenient interface for object transformation (translation, rotation and scaling).
Transformation-persistent presentations now correctly handled by picking logic, allowing usage of this and similar interactive objects with size fixed in pixels (zoom-persistence).

Perspective projection has been also improved and now correctly renders transformation-persistent objects - including Trihedron presentation in the 3D View corner.

Shaded highlighting

New highlighting style interface has been introduced, extending highlighting properties with transparency and material aspect.
The shaded highlighting now preserves lighting, which improves presentation.

Clipping and Capping planes

Clipping planes functionality has been improved to inherit material properties of intersected presentation. Performance improvements have been implemented as well.

Tiled view dump

The 3D viewer image dump functionality has been extended with capability to save a tile (sub-image) of the view with specified resolution.
This allows to avoid memory limit issues (first of all - GPU memory for off-screen buffers) saving image with overall resolution higher then it was possible before.

Elimination of global states

Visualization toolkits TKV3d and TKOpenGl have been finally cleaned-up from remaining global variables in the code.
Therefore, it is now possible creating independent viewers (e.g. having dedicated instance of OpenGl_GraphicDriver) in different threads without memory data races.
Of course, there is no intent to make these classes implicitly thread-safe - therefore it is up to application to ensure thread-safety while writing using multiple threads.

Advanced Visualization

Combination of Ray-Tracing and Rasterization approaches has been improved by eliminating Depth test issues as well as interactivity issues.
Photo-realistic Path-tracing engine has been improved by providing more precise lighting computations within physically-based material definition.
New techniques have been implemented improving raw rendering performance, adaptive performance (less noise within the same number of frames) and introducing special interactive mode.

Evolution '2015

Evolution '2014

 

Current status

In general, the tasks currently in progress can be tracked through OCCT Mantis using "OCCT:Visualization" issue category. Most urgent issues are normally scheduled for the next OCCT release.

How to help

Everyone is welcome to share ideas, comments, proposals regarding evolution of the OCCT visualization components using the forum or Mantis. Contributions to code, help in testing on different platforms will be appreciated. If you have specific requirements or urgent needs, consider ordering OCC support services.

Snapshots

Here are few stereoscopic snapshots taken from with development versions of OCCT examples.

Pump

Moto

A snapshot showing sample results of the capping algorithm:

Snapshots demonstrating implemented and experimental OCCT ray tracer capabilities:


Samovar BRep model rendered with reflections, sharp shadows and anti-aliasing

Drill BRep model rendered with reflections, sharp shadows and anti-aliasing

Ambient occlusion sample

Soft shadows sample

Rendering with light refraction support (simulating glass)

www.opencascade.com

Copyright 2011-2017
OPEN CASCADE SAS
Contact us