]> git.mxchange.org Git - flightgear.git/commitdiff
Updated to match current scenery generation tools progress.
authorcurt <curt>
Sat, 13 Mar 1999 21:42:37 +0000 (21:42 +0000)
committercurt <curt>
Sat, 13 Mar 1999 21:42:37 +0000 (21:42 +0000)
SceneGeneration/SceneryGeneration.tex

index 6e731817c00e4e66e4ff0250a7b64f3ca8d2fe52..e333b8c6dd695fc44500456d10b566ed395330f6 100644 (file)
@@ -245,20 +245,18 @@ the lon/lat coordinates of the GIS structures.
 
 \subsubsection{DEM}
 
-This is a library of routines distributed as part of Flight Gear.
-This library has routines to parse the 3 arcsec DEM file format,
-approximate the regular grid of height data, with an irregular grid,
-and interpolate the elevation of any arbitrary point inside the grid.
+This library has routines to parse the 3 arcsec DEM file format, and
+output a square section corresponding to a specified tile.
 
-An irregular grid can often represent the same level detail as a
-regular grid with 4-6x fewer polygons.  This is very desirable in a
-flight sim where both detail and rendering speed is very important.
+\subsubsection{Polygon}
 
-Another feature of an irregular grid is that it carries fewer
-artifacts that could provide negative training value to pilots.  For
-instance a regular grid could give a pilot non-realistic cues for
-determining north/south/east/west.
+This lib contains routines to assign a unique id number to each
+polygon before it is clipped against tial boundaries.  We can use this
+unique id later on to match up the edges of polygons across tile
+boundaries.
 
+This lib also contains routines to track and assign names (types) to
+each polygon so we can color it with the correct texture at run time.
 
 \subsubsection{Triangle}
 
@@ -308,27 +306,45 @@ for the file name.
 \subsection{Preprocessing tools}
 
 The preprocessing tools are responsible for inputing raw world data,
-clipping it to the appropriate scenery tiles, outputing it into the
-workspace directory tree.
+clipping it to the appropriate scenery tiles, and outputing it into
+the workspace directory tree.
 
 The scenery assembly and creation tools work on each tile
 individually, so they expect all the relevant information for a tile
 to already be there.
 
+\subsubsection{DemChop}
+
+This utility inputs 3 arcsec dem files, chops the data up along tile
+boundaries and outputs the result into the scenery workspace.
+
+\subsubsection{DemInfo}
+
+Reads the ``A'' record from a 3 arcsec DEM file and dumps some
+pertinent information.
+
+\subsubsection{DemRaw2ascii}
+
+This tool will input the 30 arcsec raw DEM format, split it up into 1
+x 1 degree sections, and output the result into the 3 arcsec format so
+it can be fed through the scenery pipeline.  (Note to self, at some
+point, this could be updated to work like DemChop and output the tile
+chunks directly.)
+
 \subsubsection{GenAirports}
 
 This tools inputs an ascii specification of the airports of the world
 that looks like the following:
 
 \begin{verbatim}
-KORD Chicago O Hare International                       
-        -087.917774 41.976778 13000 200 140 155154 14 R 668
-        -087.902380 41.969040 10141 150 90 154154 09 R 668
-        -087.903546 41.991918 10003 150 140 155154 14 L 668
-        -087.889594 41.961618 8071 150 41 154154 04 R 668
-        -087.903705 41.983954 7967 150 90 154154 09 L 668 
-        -087.905138 41.989606 7500 150 39 142144 04 L 668
-        -087.900410 41.990086 5341 150 180 131131 18 x 668
+A KORD  41.979595 -087.904464   668 CYY Chicago O Hare International
+R 04L  41.989606 -087.905138 039.39   7500 150 AHYN NNNLYN NNNNNY
+R 04R  41.961618 -087.889594 041.40   8071 150 AHYN YNNNNY YNNNNY
+R 09L  41.983954 -087.903705 089.70   7967 150 AHYN YNNNNY YNNNNY
+R 09R  41.969040 -087.902380 089.88  10141 150 AHYN YNNNNY YNNNNY
+R 14L  41.991918 -087.903546 140.10  10003 150 AHYN YNNBYN YNNNNY
+R 14R  41.976778 -087.917774 140.08  13000 200 AHYN YNNBYN YNNNNY
+R 18   41.990086 -087.900410 180.00   5341 150 AMNN NNNNNN NNNNNN
 \end{verbatim}
 
 For each airport, a bounding polygon is generated, and written as a
@@ -337,6 +353,10 @@ area.  The actual airport will belong to the tile containing it's
 center point, but the airport will need to be clipped out of the base
 terrain from any tiles it might spill over into.
 
+Robin Peel (robin@cpwd.com) maintains this data base, primarily for
+use with X-Plane, but lets us use it too.  His distribution contians a
+much more detailed description of the fields and formats.
+
 \subsubsection{ShapeFile}
 
 The ShapeFile tool will take the polygons from shapefiles (via GFC),
@@ -352,32 +372,21 @@ neighboring tiles and this unique polygon id will enable us to do
 this.  Each polygon that is written out (no matter what the source or
 type) should have a unique id number assigned to it.
 
-\subsubsection{DemRaw2ascii}
-
-This tool will input the 30 arcsec raw DEM format, split it up into 1
-x 1 degree sections, and output the result into the 3 arcsec format so
-it can be fed through the scenery pipeline.
-
-\subsubsection{Dem2node}
-
-This tool takes the raw DEM files and calls routines from libDEM.a to
-create the irregular grid approximation of the original data.  The
-elevation data is writen to the to the appropriate tile in the scenery
-work space.
-
 \subsection{Scenery generation tools}
 
 Issues:
 
-Combining height data, polygon data.
+\begin{itemize}
+\item Combining height data, polygon data.
 
-Triangulating / tri-stripping / tri-fanning.
+\item Triangulating / tri-stripping / tri-fanning.
 
-Matching vertices and normals along edges and at corners.
+\item Matching vertices and normals along edges and at corners.
 
-Resolving conflicts in data:
+\item Resolving conflicts in data:
   overlapping polygon areas.
   conflicting height data between airports and DEM data
+\end{itemize}
 
 Here's the basic process to create scenery:
 
@@ -447,9 +456,49 @@ Finally, we need to take our 3d, fan-ified polygons and convert them
 to the FGFS scenery format and copy them from the work space directory
 tree into the final scenery directory tree.
 
+\subsubsection{Array}
+
+This library reads in the regular grid data written by the DemChop
+preprocessing tool.  It has a fit routine which approximates the
+regular grid of height data with an irregular grid, and interpolate
+the elevation of any arbitrary point inside this grid.
+
+An irregular grid can often represent the same level detail as a
+regular grid with 4-6x fewer polygons.  This is very desirable in a
+flight sim where both detail and rendering speed is very important.
+
+Another feature of an irregular grid is that it carries fewer
+artifacts that could provide negative training value to pilots.  For
+instance a regular grid could give a pilot non-realistic cues for
+determining north/south/east/west.
+
+\subsubsection{Clipper}
+
+This library makes heavy use of ``the generic polygon clipper''.  The
+polygons of each tile are clipped against the tile boundaries as well
+as any higher priority polygons for that tile.  To do this the library
+processes the polygons from highest priority to lowest and
+incrimentally builds up an accumulation ``super-polygon''.  This
+super-polygon is the union of all the polygons processed so far.  As
+each polygon is processed, it is first clipped against this
+super-accumlation-polygon.  What's left after the clip is the new
+shape of the polygon.  This is the scheme for eliminating overlapping
+features on a priority basis.  In the end we can create a base-terrain
+polygon out the remaining open areas of the tile that weren't covered
+by any other polygons.  This way we end up with a set of ``puzzle''
+pieces that together form the complete tile with no overlaps and no
+gaps.
+
+
+% \subsubsection{Dem2node}
+% 
+% This tool takes the raw DEM files and calls routines from libDEM.a to
+% create the irregular grid approximation of the original data.  The
+% elevation data is writen to the to the appropriate tile in the scenery
+% work space.
+
 % \subsubsection{Areas}
 % \subsubsection{AssemTris}
-% \subsubsection{Clipper}
 % \subsubsection{FixNode}
 % \subsubsection{FixObj}
 % \subsubsection{SplitTris}
@@ -458,11 +507,6 @@ tree into the final scenery directory tree.
 
 \subsection{Miscellaneous Utilities}
 
-\subsubsection{DemInfo}
-
-Reads the ``A'' record from a 3 arcsec DEM file and dumps some
-pertinent information.
-
 \subsubsection{tile-sizes.pl}
 
 Generates the width of a 1/8 x 1/8 degree tile at various latitudes.
@@ -473,6 +517,9 @@ Generates the width of a 1/8 x 1/8 degree tile at various latitudes.
 
 %------------------------------------------------------------------------
 % $Log$
+% Revision 1.3  1999/03/13 21:42:37  curt
+% Updated to match current scenery generation tools progress.
+%
 % Revision 1.2  1999/03/08 21:59:52  curt
 % Updated based on current efforts.
 %