Scientific Visualization and Computer Graphics

Scientific Visualization and Computer Graphics > BI > FSE > RUG * Print * Search

Chapter 8: Domain-Modeling Techniques

Sample programs

Back to the overview

Selection and cutting

See the sample Voxel grids, surfaces, and cutting in Chapter 10 for a demonstration on how to select and cut in 3D voxel volumes.

Point cloud visualization

This sample demonstrates how we can render a 3D unstructured point cloud. The sample is relatively complicated, as it introduces several techniques:

  • how to represent an oriented point cloud with per-point radius information
  • how to search the nearest neighbors of a point in a point-cloud
  • how to compute point normals, using principal component analysis (PCA)
  • how to render the cloud using (oriented) points, cubes, and spheres

See also the sample Voxel grids, surfaces, and cutting in Chapter 10 which shows related techniques for rendering a voxel surface.

Point clouds sample

Laplacian smoothing

This sample demonstrates how to smooth a 3D mesh using Laplacian smoothing. The sample implements both the classical Laplacian smoothing (which shrinks the mesh) and the modification proposed by Taubin (which keeps the mesh volume). Additionally, you can add a variable amount of random normal jitter to create noisy surfaces. Next, use the smoothing to eliminate this noise.

Laplacian smoothing

Note: The bunny.ply model provided in this sample is not a closed mesh. Observe how smoothing treats the holes in the mesh!

Simple mesh refinement

This sample demonstrates how to perform an extremely simple 3D mesh refinement. Triangles whose area is larger than a given threshold are subdivided into three smaller ones using the barycenter. It is meant as a simple starting base to implement your own heuristics for mesh refinement.

Simple mesh refinement

Loop mesh refinement

Demonstrates the refining of a 3D mesh using the Loop subdivision scheme. Code adapted from here. Slightly more complex code than the simple scheme above but gives better shaped triangles.

Loop mesh refinement

Simple mesh decimation

This sample demonstrates how to perform a very simple mesh decimation (quadric algorithm). Given a mesh, a target is given (reduction of the number of vertices/cells by a user given factor), and the mesh is decimated to that target.

Mesh decimation

Convex hull computation

A simple demo for computing the convex hull of a 3D point cloud using the QHull package.

Convex hull computation

Advanced point cloud visualization

Visualizing point cloud surfaces that use a highly non-uniform point density is challenging, as (1) the visual impression of a compact surface must be created; and (2) surface normals must be accurately estimated. The techniques incorporated in the QSplat tool achieve this, by rendering points as textured quads, or splats. Furthermore, using a hierarchy of splats allows QSplat to render clouds of millions of points at interactive frame rates.

QSplat home page (external link)

2D Alpha shapes

This online sample demonstrates the construction of alpha shapes for a 2D point cloud. The user can interactively specify a set of points, and the demo computes the emerging alpha shapes, as well as the cloud's Voronoi diagram and Delaunay triangulation.

Alpha shapes (online demo)

Level-of-detail molecular visualization

This sample demonstrates a number of domain-modeling techniques (mesh construction, mesh simplification, illustrative rendering) for the problem of visualizing a molecule at different levels of detail. The sample is described in the paper Illustrative Molecular Visualization with Continuous Abstraction (M. van der Zwan, H. Loeks, H. Bekker, T. Isenberg, Proc. EuroVis 2011). The sample loads a molecular structure and allows one to interactively play with the visualization's level of detail. It runs on Windows and Linux.

LOD molecular sample (locally cached)

Original sample from authors

Mesh processing

The MeshLab tool offers a comprehensive collection of tens of algorithms for processing of 3D polygonal meshes and 3D point clouds. Examples include mesh smoothing, repairing, quality computation, refinement, simplification, manual editing, conversion between a variety of formats, computation of normals, and surface reconstruction from point clouds. Algorithms include both well-known and proven techniques and also more recent research-grade methods. The tool is open-source and simple to use (via a GUI).

MeshLab home page

Back to the overview