MantisBT - Open CASCADE
View Issue Details
0024918Open CASCADE[OCCT] OCCT:Visualizationpublic2014-05-13 17:452020-09-21 17:20
[OCCT] 6.7.1 
[OCCT] 7.6.0* 
0024918: Visualization, MeshVS - improve rendering of volume mesh
Currently, MeshVS package implements very simple and inefficient way of rendering volume mesh:
- each 3D mesh element is rendered as a complete set of its facets, that results in duplication of facets shared between adjacent 3D mesh elements
- internal facets of 3D mesh elements which are normally invisible are rendered

Two most typical situations that lead to the performance issue in case of a volume mesh:
- for a tetrahedral mesh containing N tetrahedrons 4*N triangles are rendered;
- for a hexahedral mesh containing N hexahedrons 6*N quads (or 12*N triangles) are rendered.

This limits potential usage of MeshVS for visualization of volume meshes even in case of moderate mesh size.

Possible improvements in this area:
1. Pre-compute and draw the 2D skin (or skins) of the volume mesh and ignore the internal facets. This will improve performance dramatically but leads to unexpected visual results when clipping planes are enabled in the view.
Nevertheless, this can become the first step.
Such optimized rendering can be switched off automatically in some cases when internal mesh details should be visible:
- when OpenGL clipping planes are activated
- when shrink display mode is used
- when transparency is set to non-zero

2. Implement advanced mesh clipping algorithm that will draw the cross-section of the volume mesh as a shaded area filled according to the colors of the intersected 3D mesh elements. See the attached image for example (taken from [^]). The algorithm of building the cross-section is to be chosen, e.g. elements of ray tracing can be considered or specific GLSL shaders or even a geometrical algorithm that builds a planar mesh patch each time when the camera is modified...

3. In addition to advanced volume mesh clipping, the following aspects can be considered:
- semi-transparent volume mesh
- shrink display mode
No tags attached.
related to 0027905closed apn Open CASCADE Visualization - randomly directed arrows on test v3d mesh B7 
png 3d_mesh_clipping.png (107,139) 2014-05-13 17:46
Issue History
2014-05-13 17:45sanNew Issue
2014-05-13 17:45sanAssigned To => san
2014-05-13 17:46sanFile Added: 3d_mesh_clipping.png
2014-05-13 17:54sanDescription Updatedbug_revision_view_page.php?rev_id=7435#r7435
2014-05-13 18:00sanDescription Updatedbug_revision_view_page.php?rev_id=7436#r7436
2014-05-13 18:07sanDescription Updatedbug_revision_view_page.php?rev_id=7437#r7437
2014-09-12 14:20abvTarget Version => 7.1.0
2014-11-12 08:22kgvSummaryMeshVS: improved rendering of volume mesh => Visualization, MeshVS - improve rendering of volume mesh
2016-09-29 12:31kgvRelationship addedrelated to 0027905
2016-10-25 09:29kgvTarget Version7.1.0 => 7.2.0
2017-07-20 10:48kgvTarget Version7.2.0 => 7.4.0
2018-03-13 15:21kgvRelationship addedrelated to 0029439
2019-09-04 15:36abvTarget Version7.4.0 => 7.5.0
2020-09-21 17:20kgvTarget Version7.5.0 => 7.6.0*

There are no notes attached to this issue.