Terrain Level of Detail

From World Wind Wiki

(Difference between revisions)
Jump to: navigation, search
Revision as of 18:33, 8 March 2007 (edit)
Stepman (Talk | contribs)
(Tesselation - added image, note on resolution)
← Previous diff
Revision as of 18:34, 8 March 2007 (edit) (undo)
Stepman (Talk | contribs)
(Tesselation)
Next diff →
Line 2: Line 2:
==Tesselation== ==Tesselation==
-[http://en.wikipedia.org/wiki/Tesselation Tesselation] behavior is regular, with seams hidden by optional vertical skirts. Not really [http://www.flipcode.com/articles/article_geomipmaps.shtml Geometrical MipMapping], but similar. 
- 
[[Image:step_Quadtile.png|frame|Each Quadtree node has four children at twice the resolution]] [[Image:step_Quadtile.png|frame|Each Quadtree node has four children at twice the resolution]]
 +
 +[http://en.wikipedia.org/wiki/Tesselation Tesselation] behavior is regular, with seams hidden by optional vertical skirts. Not really [http://www.flipcode.com/articles/article_geomipmaps.shtml Geometrical MipMapping], but similar.
The db is a large quadtree, no neighbor checking. Without struts, large terrain cracks would be seen. It's very simple, leaning more on how the textures are handled, and less on what's 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. The db is a large quadtree, no neighbor checking. Without struts, large terrain cracks would be seen. It's very simple, leaning more on how the textures are handled, and less on what's 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.

Revision as of 18:34, 8 March 2007

A brief on how WorldWind determines the terrain level of detail (LOD).

Contents

Tesselation

Each Quadtree node has four children at twice the resolution
Each Quadtree node has four children at twice the resolution

Tesselation behavior is regular, with seams hidden by optional vertical skirts. Not really Geometrical MipMapping, but similar.

The db is a large quadtree, no neighbor checking. Without struts, large terrain cracks would be seen. It's very simple, leaning more on how the textures are handled, and less on what's 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.

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 are rendered, the parents' respective quadrant is also rendered, but at a lower resolution.

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

Credits

Thanks to Stepman, withak, what_nick, and of course, the intrepid Ender1618 for asking the tough questions.

Personal tools