Terrain Deformation Software Progress Report
for Feb 8, 2006
Progress on the Terrain Deformation Software (TDS) has been in the experimental stages
including running prototype algorithms to test for quality performance and feasibility.
Several stages have been traversed, including the following steps:
- OpenSceneGraph infrastructure for loading of target databases and OpenFlight terrain databases
- Development of the ESRI Shape loader for the loading of targets (continuing work)
- Improvements to the OpenFlight database (continuing work).
- Development and experimentation with terrain deformation algorithm in multiple parts.
In summary, the results of running the Terrain Deformation algorithm can be
observed in the frame below. Click on Before TDS to see an image of
a scene with multiple targets, not well aligned to a terrain database. Click
on After TDS and see the results of applying the algorithm to the
terrain. Note that targets remain fixed and the terrain is modified to
accomodate the target positions and shapes.
The steps to applying the TDS are outlined here.
1. Create Correction Space Mesh
The Correction Space Mesh (csm) is created by generating a list of vectors
obtained by querying the periphery of each target (the "bottom" of which is
determined somewhat arbitrarily and assumed at this stage to be flat).
The corners of the terrain block to be deformed are then added to the list
of vectors. The list of vertices is then triangulated, resulting in a list
of triangles deemed the CSM.
This Correction Space Mesh will then be used to compute a correction function
for each triangle in the CSM, which can then be applied to any point on the
terrain falling withing the periphery that triangle.
|
|
2. Terrain Triangle Subdivision
The terrain block is traversed and all triangles are tested for a fit to the
curvature of the correction function in the CSM. That is, each edge is tested
for deviation of the altitude of the linear interpolation between the end points
at the center and the altitude would the correction function be applied at the
center. The result is the subdivision of triangles that do not adequately
represent the curvature of the terrain with the correction function applied.
It is important to note that the subdivision of triangles does not apply
the correction function yet. Subdivisions are made in latitude and longitude
only and the altitude at each newly generated point is the linear interpolation
between the end points. The reason for this is that the correction function
must be applied only once to all points, or multiple corrections will occur
with negative results.
|
|
|
The above is shown with factors exagerated for the purpose of illustrating subdivisions.
|
|
3. Application of Correction Function
Once new coordinates have been generated for the triangle subdivisions,
the correction function may then be applied. Each of the points in the
terrain is placed within the triangle of the CSM it corresponds to, and
the correction function is then applied to the point and the altitude of
the point is corrected to conform to the new position.
Before re-triangulating, a two steps are taken to insure further quality.
- The vertecies used to create the CSM (defined as the "bottom" of
the targets in the target database) are added to the terrain
database. This insures that the targets will adhere to the surface
of the terrain with no spaces between the edges of the periphery of
each target and the terrain itself.
- The vertices on the terrain that lie within the bounds of the
"bottoms" of the targets are corrected to have the same altitude
as the bottom of the corresponding target. Although the correction
function has already been applied to these points, the discrepancy
between the altitude produced by the correction function and the
bottom of the targets can result in spaces between target periphery
points.
Progress Demonstration
The following provides a visual representation of progress on the terrain
deformation algorithm.
Please click here for a demonstration.
|