On Thu, Sep 29, 2011 at 1:10 PM, ThorstenB <wrote:
Well, I have little to add. I can just confirm your and Curt's
descriptions: yes, the tile loader reads the visibility property. When
is has increased above a certain threshold (or when the position has
moved into another area), it starts loading more scenery. And it always
requests all tiles within the range defined by visibility (limited to
the max-lod range though). It could be changed easily to watch for some
other property - such as a specific "ground visibility property", when
that's provided. But yes, loading scenery is a major performance/memory
factor - so we shouldn't be loading much more scenery than we do now -
unless the fundamental concepts are also improved (such as better LOD
support for scenery tiles).
And it'd be rather complicated to implement any other tile loading
method instead of the current concept of loading all tiles within a
certain range. The tile loader lives in a simple 2D world. It knows
nothing about elevation of certain tiles etc.

Just to add a couple more bits of information.  The tile loader knows (or can compute) the exact dimensions of the tiles.  I thinks in terms of "square" rings if that makes sense.  There is the tile which you are over right now.  There is a ring of 8 tiles surrounding your current tile.  There is a ring of 16 tiles surrounding that and a ring of 24 tiles surrounding that.  3x3 = 9 - the inner tile = 8.  5x5 = 25 - the 3x3 block = 16, etc.  So the tile loader loads the 'current tile' which you are over the top of it and proceeds to load as many surrounding 'rings' as needed to cover the current visibility distance.

As Thorsten B. points out though ... there is a memory/performance/disk-io price when loading tiles.  And if we are pushing scenery complexity at the same time as pushing visibility out, this price will grow exponentially ... so it's worth paying attention to.


Curtis Olson:
http://www.atiak.com - http://aem.umn.edu/~uav/
http://www.flightgear.org - http://gallinazo.flightgear.org