For a related note, please see Draping on Terrain Surfaces - FAQ - Apryse Community
PDF3D ReportGen and PDF3D.IO development SDK software is able to load DTM models both as ascii or binary.
In Terrain mode, one object is identified as the terrain target, with others conformed to drape onto the surface.
A feature of our software is “Terrain Mode”; One object is identified as the terrain target, with others conformed to drape onto the surface.
In this mode a single unique object is identified and marked in the scene with attribute “Terrain”, generally as a single-valued height surface. This can be a grid or a triangle mesh, and must be some type of surface (we supply examples of this from STL and DWG formats in our PDF3DReportGen\Samples folder). Then one or more other vector objects can be marked with a special attribute “Lies On”. These can be lines or polygons. Typically they may be 2D map data such as geographic boundaries, roads, GIS coverages, or shape files. Often they have X-Y data with Z=0.
During processing, each “Lies On” marked object is conformed onto the Terrain surface (i.e. “Draped”), by ignoring the original Z and using the Terrain Z. The “Lies On” 2D shapes are segmented and tessellated to the resolution of the Terrain object so it will match and conform.
To avoid Z-fighting, it is helpful to enable the Layer controls so the 2D objects can be lifted slightly above the surface. Note that this operation can be time and memory resource consuming.
For examples please see the .pdf3dsettings files saved in the PDF3DReportGen\Samples\states folder
- windsor_layered_geospatial_3D.pdf3dsettings
- windsor_layered_geospatial_dwg_3D.pdf3dsettings
- windsor_layered_geospatial_stl_3D.pdf3dsettings
Note there is a separate unrelated Image draping system, Terrain mode is for vector features.
Further Technical Details
To make the vector shapes to drape on terrain surfaces, you should edit the state file of the assembly.
In Assembly properties you should add the string “TerrainMode”:
<Assembly>
<InputFileName value="elevation_tile_grid.asc"/>
<AssemblyProperties colorArrayIndex="0" colorArrayName="">
<TerrainMode mode="Terrain"/>
This identifies the object which defines the elevation drape target.
For the assembly blocks concerning vector files, containing the objects that should drape on the terrain, change the value to
<TerrainMode mode="LiesOn"/>