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:

  1. Build a disk-based mip-map texture at each power of two of your image (just like the hardware clipmapping on SGI)
  2. 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 have available.
  3. 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.
  4. each LOD square will equal your power of two levels, calculate the appropriate texel coordinates of the nearest texture LOD and draw.
  5. 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

  1. 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.
  2. offsets from center can be used to better position each texture level so that half the image is not always behind the user.
  3. prediction can be used to subload textures "before" you reach that area and will be ready to go immediately.
  4. 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.
  5. 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