In an earlier post we looked at the benefits of having a textured image draped over a surface model when mapping structures for geotechnical analysis.
In this post we’ll investigate the flip side — what can happen when the texture implies the existence of detail that is not present in the underlying DTM.
This can occur in two ways:
- There are gaps in the surface model that the texture is draped over, making the gaps not apparent. Vegetation, moving vehicles, or even small areas without sufficient surface texture for the photogrammetry to generate 3D data can cause this.
- The density of the DTM is far less than the density implied by the ground pixel size of the texture.
The former can happen at any time and depends on the content of the scene. It may be obvious (e.g. you can see vegetation at the location) or it may not (e.g. an area was simply too featureless to create data but it wasn’t large enough to leave an actual hole in the surface).
The latter is unlikely to happen in our software when following the recommended practices1 but we have seen it happen quite often in data imported from 3rd-party packages because they often impose a limit on the total number of triangles generated rather than the actual spacing you wish to see in the output data. It can be easy in those packages to accidentally produce DTMs with a far lower density than expected based on the flight planning so this feature is especially useful for those using 3DM Analyst Edit Station (Enhanced Edition) and above to import OBJ files that come from third party providers who may not understand the requirements for structural mapping as opposed to, say, calculating stockpile volumes.2
Our typical advice to deal with this is to encourage users to regularly switch back and forth between textured mode and either untextured surface mode or wireframe mode to make sure that the surface they are mapping on actually contains the level of detail they need it to in order to map features of the size that they are attempting to map.
Why it’s a problem
3DM Analyst relies on being able to fit a plane to the set of points making up the feature in order to determine the plane’s orientation.
We can split planar features into two categories: Faces (where the surface of the plane is exposed), and traces (where the rock remains intact on both sides of the feature but we can see the crack in the surface, creating a profile along the plane).

For traces in particular, the accuracy of the orientation is sensitive to the degree of non-colinearity in the points that are used to construct the plane. Because the rock is intact, and we are seeing the plane “edge-on”, we rely on the surface that the plane is intersecting to be non-planar (so that the trace is non-colinear) in order to determine that plan’s orientation.
If the point spacing in the surface is large relative to the size of the features we are trying to map, it’s quite possible that we could end up mapping a feature that lines entirely within a single triangle, or only incorporates points from a few adjacent triangles. This sparse sampling of the surface model adds to the uncertainty in the orientation of the plane.
New rendering mode
To address these issues, we have combined the mapping benefits of textured mode with the safety benefits of wireframe mode to create a new rendering mode that shows both at the same time, so you do not need to switch back and forth to check the level of detail of the surface:

The triangles are rendered in the “Extended DTMs — Overlay Colour” specified in your Colour Settings dialog (red in this case) if it’s an extended DTM, or the “255.5 Default DTM Style” colour specified in your FDF if it’s a current DTM, unless they are “large” relative to the average triangle size in the loaded DTMs, in which case they are rendered in a fixed yellow colour, with thicker lines and an opacity that depends on just how “large” the triangles are.
To remain unobtrusive enough that you can leave it on all the time, the wireframe actually fades out as you zoom out, only becoming prominent when you have zoomed in enough that you could be in danger of mapping details that are not there:

In this case, by 100 mm GSD the wireframe has vanished completely:

Well, almost completely. There are still triangles shaded in yellow but they eventually fade out, too, if you zoom out enough.
Basically, if you can see the wireframe at all, it’s a sign that you need to be mindful of the size of the features you are attempting to digitise and the triangles that you are mapping across, especially if they’re yellow.
To activate the new mode, simply click on the Show Triangles button in the toolbar when the Show Surface button is active or click on the Show Surface button when the Show Triangles button is active:

Normally, clicking on Show Triangles will turn off Show Surface. If you really do want to view the wireframe mesh alone, either hold down Ctrl when clicking on the Show Triangles button, or click on the Show Surface button after clicking on Show Triangles to deactivate it:

Namely, use a “4-pixels-per-point” density setting for the raw DTMs, and either let the software automatically determine the output spacing if merging DTMs or specify the output spacing that you planned for when planning the project. ↩︎
If the provider is already specifying the maximum number of triangles supported by that package then the only option to recover the lost detail is to break the project up into smaller subprojects and generate the DTMs separately. Again, this isn’t a problem for our software, which imposes no artificial limits on the number of points or triangles in an output DTM, but we have seen it many times in data supplied to customers from service providers and unless they are mindful of the fact that the resolution of the surface model/DTM can be far lower than what is implied by the resolution of the texture, the result can be quite dangerous. ↩︎