Terrain Level of Detail
From World Wind Wiki
Revision as of 20:11, 14 March 2007 (edit) Adamhill (Talk | contribs) (→Tesselation) ← Previous diff |
Revision as of 14:07, 25 January 2010 (edit) (undo) LakmnerDertion (Talk | contribs) (→Credits) Next diff → |
||
Line 43: | Line 43: | ||
- | + | [http://www.arizona-breast-cancer-specialists.com/brachytherapy/all-about-what-is-brachytherapy.html Breast cancer brachytherapy] | |
[[Category:Dev]] | [[Category:Dev]] |
Revision as of 14:07, 25 January 2010
A brief on how WorldWind determines the terrain level of detail (LOD).
Contents |
Tesselation
Tesselation behavior is regular, with seams hidden by optional vertical struts. Not really Geometrical MipMapping, but similar. Without struts, large terrain cracks would be seen wherever tiles are displayed at different levels. For more explanation see fillets in JCanyon
The db is a collection of large quadtrees, no neighbor checking. The level zero tile size defines the size of the quadtree root nodes. To evenly cover the entire globe, this must evenly divide 180 degrees. This scheme is very simple and mostly based on how the textures are handled and less on what would work best for rendering.
All nodes have the same number of samples; since each node has 2x2 children, this effectively doubles the resolution with each level. Currently, tesselation and node subdivision is coupled to both texture and elevation: to create a node, both texture and elevation data must be available at the appropriate level.
Triangles
Triangle data is created for each tile seperately. Each node has a local coordinate system approximately at the center of the node, calculated and rounded off to the nearest 10^5 to avoid precision errors.
Regular triangle grids are generated on the fly from the paged elevation data.
Uses neighboring elevation when averaging normals to correct mesh normals. This is used for the sun shading feature so as not to show seams.
If not all child nodes of a quad tree node are rendered, the parent's corresponding quadrant is also rendered; this part is therefore displayed at half the resolution of the other children.
The LOD is a simple distance based calculation and does take altitude into consideration.
Height Maps
Height maps are 16 bit signed and can be 32 bit floats, if LIDAR/IfSAR data is available.
References
- Dstile_howto
- WorldWind Tiling System (png)
- Making_Layers
- Level of Detail Programming (Wikipedia)
- Geospatial_image_processing
- A collection of LOD papers (Lindstrom-Koller, chunked, de Boer)
Credits
Thanks to Stepman, withak, what_nick, and of course, the intrepid Ender1618 for asking the tough questions.