From: Jeffry Brickley
Sent: Thu 3/23/2000 3:46 PM
Here is software cliptexturing in a nutshell, or at least how I will design
it for quadtree if no one beats me to it (which I hope they will) before my
software requires it:
- Build a disk-based mip-map texture at each power of two of your image
(just like the hardware clipmapping on SGI)
- using your location as a basis, load in subregions each at the same
texture size, but only sub-regions of the highest resolution levels. i.e.
based on a location at 32.5,-106.5 and a database that is one degree, load a
256x256 level of the entire 1 degree (lowest level), load a 256x256
subsection of the next higher power of two centered around your location
(32.25to32.75, -106.25to-106.75) , etc. for as high of a resolution as you
- stripify your quad-tree or roam data based on squared LOD
"levels" where the largest is the entire data base, second level
is the four quads that make up that, etc.
- each LOD square will equal your power of two levels, calculate the
appropriate texel coordinates of the nearest texture LOD and draw.
- when the position moves, each texture is updated via subloading technique
you have on your site starting from lowest resolution to the highest. This
is often done from a separate thread so that the program can continue even
if the images are not all subloaded by the time it comes to draw.
Some side issues associated with this, is
- sub-loading textures: if a texture does not get subloaded properly, the
coordinates will be off, this level is generally skipped, and the texture
coordinates and texture of the next lowest resolution is used.
- offsets from center can be used to better position each texture level so
that half the image is not always behind the user.
- prediction can be used to subload textures "before" you reach
that area and will be ready to go immediately.
- if your graphics system allows larger textures than 256x256, it may or may
not be advantageous to use it because of extra time in subloading portions
into a 1024x1024 texture.
- you will notice aberrations at the edge of texture levels where one set of
triangles are using one texture, and the next over is using a different
power of two level.
and it just gets more complicated from there....
just me, jeff