Enhanced Visualization of Detected 3D Geometric Differences

Gianpaolo Palma, Manuele Sabbadin, Massimiliano Corsini, Paolo Cignoni

Computer Graphics Forum - 2017

Web Interactive viewer

This page contains few examples of the web based difference visualization tool. The tool takes in input two triangular meshes each one with a scalar change map encoding the probability that the two meshes are different in that point; the tool implements the four methods for the interactive visualization of this change map that have been presented and evaluated in the paper.

The main contribution of the viewer is the use of two different screen-space interpolation functions to improve the perception of the mapped geometry changes, and, at the same time, to hide the other negligible variations (high frequency geometric details and high frequency color variations).

The bottom slider control the switch between the two models.

The viewer uses a standard trackball to navigate the scene with rotation (Drag), pan(Ctrl+Drag), zoom (Wheel) and re-centering (Double Click).

In the top-right corner of the page there is a set of controls to modify the discussed cross-interpolation algorithm:

The viewer uses some WebGL extensions that could not be available in your browser. If you have problems, you can try a more recent web browser and to force the use of the discrete graphics card.


The following showcases use a change field computed with Palma et al. 2016 with the exception of the Gargoyle 2 where the change field is computed as Hausdorff distance using Cignoni et al. 1998 normalized with respect to the maximum distance.

Showcase with animation

The aim of the following showcase is to prove that the proposed method is real-time and easy to integrate in any 3D rendering systems. You can interact with the time using the slider in the bottom while the gargoyle is automatically rotated.


The PHP page takes some GET parameters to specify the URL of the two NXS models ("model1" and "model2") and the threshold for the change/no-change segmentation ("change").

Code zip file

How to prepare the data

To prepare the data you should compute a change probability for each vertex of the two meshes and store it in the alpha value of the per-vertex color. All the processing can be done inside Meshlab.
The easy way to compute the per-vertex change probability is to use the filter "Hausdorff distance" for both the meshes. This filter stores the distance of each vertex from the surface of the other mesh in the a per-vertex quality attribute.
Then the quality must be normalized in the range [0,1] using the filter "Per Vertex Quality Function". Finally, we must store the quality in the alpha values of the per-vertex color using the filter "Per Vertex Color Function". The quality must be quantized in the range [0, 256].
After the saving of the file in the ply format you must preprocess the meshes with the Nexus converter NxsBuilder in order to create the multi-resolution model.
To visualize the models it is sufficient to load the nxs files on the web server and to use the GET parameters to set the url of the models to load.
Please contact me if there are any problems.


The following link contains the meshes used for the previous showcase. For each example there are the two meshes with a per-vertex quality attribute that contains the change field value in the range [0,1]. The change field is computed with the method proposed in Palma et al. 2016. For the Gargoyle example there is a version where the change field is computed as Hausdorff distance using Cignoni et al. 1998 normalized with respect to the maximum distance.

Link zip file


Gianpaolo Palma (gianpaolo.palma_at_isti.cnt.it)


Palma et al. 2016
Gianpaolo Palma, Paolo Cignoni, Tamy Boubekeur, Roberto Scopigno. Detection of Geometric Temporal Changes in Point Clouds. In Computer Graphics Forum (Presented at Eurographics 2016), Volume 35, Number 6, page 33--45, 2016

Cignoni et al. 1998
Paolo Cignoni, Claudio Rocchini, Roberto Scopigno. Metro: measuring error on simplified surfaces.. In Computer Graphics Forum, vol. 17, no. 2, pp. 167-174, Blackwell Publishers, 1998