ContextCapture User Guide

Level of detail principles

The Level of detail (LOD) format allows the loading and visualization of very large 3D models. It does so by:
  • Decreasing the complexity of the representation as it moves away from the viewer.
  • Only loading the parts of the model that are visible from the current point of view.

The LOD uses a tree structure, where the topmost node is a very coarse geometry, and the children are of a progressively finer geometry. The leaf nodes are the finest granularity of the 3D representation.

Below is an example of a LOD tree, where each node contains geometry and texture. Different from a point cloud LOD representation, the child contains a full mesh specification that completely replaces the parent mesh.

The Level 2 node, for example, is split into 2 children, each containing half of the model, but at a finer scale than the parent. When showing Level 3 nodes, Level 2 should be hidden.

The nodes are shown according to their proximity to the screen. Reverting to our example, when we are far away from the screen, node A (Level 1) is shown. As we get closer and closer, the nodes are replaced by their children. Node B will replace node A, for example, and nodes C and D will replace node B. If we zoom on the node C, it might be that node C will be replaced by level 4 nodes E and F, while its sibling, node D, remains unchanged.

In the process of replacing nodes by their children, it might be the case that the node needs to disappear, without any geometry replacing it. Or mesh simplification can reduce so much a node geometry that the parent holds no triangle. Both situations require an empty node. Empty nodes are sometimes possible in our LOD representation, and they should be considered.

At any given time, only one node from a possible tree path is shown. In our LOD example, if the node B is shown, then the Level 1 node is not shown, and neither are any of node B’s descendants.

The question now is, when is a certain node “close enough” to be shown on the screen? For this, the ContextCapture (Viewer or Web Viewer) approach is to consider how big the node appears on the screen (in pixels). To speed up calculations, the node’s bounding sphere is used as a proxy. The projection of the bounding sphere on the screen is a circle of diameter d. The diameter d is used as the measure of how big the node is on the screen.

Each node has attached a pixel maximum screen diameter. This value represents the maximum value of the projected bounding sphere diameter d for which the node should be visible. Once this value is surpassed, the node should be replaced by its children.

In the example above, node A is shown for as long as its bounding sphere is projected onto the screen as a circle of a diameter less than 40 pixels. When the bounding sphere projection becomes too large, node B is loaded and shown.

As we get closer to the model, we advance in the tree structure towards higher resolution nodes, but only for visible areas! This means that only a small portion of the tree will be loaded in the memory at high resolution.

In our example, nodes E and F become invisible when the camera zooms in on node D. So, while the D part of the model is needed at a high resolution, nodes C, E and F are not useful anymore. To minimize memory consumption, they should be deleted.

In general, a node is deleted when it has been invisible for a certain period of time. The nodes are not deleted immediately after becoming invisible, because they have a high likelihood of becoming visible again when the camera moves slightly. The delay in deleting the nodes ensures that the nodes are unlikely to be needed soon. Nodes are not deleted if any of the children are still needed.

To resume, the principal ideas in LOD visualization of ContextCapture (Viewer or Web Viewer) data are:

  • Only one node from a path from root to leaf is seen at any given time.
  • A node is seen when its projection on the screen is within a predefined range (in pixels).
  • A node is loaded only when needed (when the parent is reaching the maximum projection area on screen).
  • Nodes that are unseen for a certain period of time are deleted.