Out-of-core (OOC) rendering algorithms render a model without the need to load the entire model into memory. A prime example of this is the terrain and imagery engine in Insight3D and STK. Most terrain data sets simply do not fit into main memory so an OOC algorithm is called for. Since OOC algorithms have many uses beyond terrain, e.g. cities, I wrote my thesis on the topic:
Title: Visibility Driven Out-of-Core HLOD Rendering
Abstract: With advances in model acquisition and procedural modeling, geometric models can have billions of polygons and gigabytes of textures. Such model complexity continues to outpace the explosive growth of CPU and GPU processing power. Brute force rendering cannot achieve interactive frame rates. Even if these massive models could fit into video memory, current GPUs can only process 10-200 million triangles per second. Interactive massive model rendering requires techniques that are output-sensitive: performance is a function of the number of pixels rendered, not the size of the model. Such techniques are surveyed, including visibility culling, level of detail, and memory management. In addition, this work presents a new out-of-core rendering algorithm that is demonstrated with a variety of HLOD rendering algorithms.
Here is the video of my defense (minus the first 30 seconds or so, sorry):
For more information, check out:
- The ppt slides.
- The full pdf, all 106 pages of it. The first half is a survey. See chapter 6 for the primary contribution and chapter 8 for future work.
- If you are in the neighborhood, I am presenting at Villanova's Computer Science Colloquium on March 9th. The title is Introduction to Massive Model Visualization. The full abstract is posted on Villanova's website. Basically, it is an introduction to my thesis topic that assumes no background in computer graphics.
The new algorithm described in my thesis will make its way into Insight3D as a generic massive model primitive. If this is something you are interested in, I'd like to hear from you. What formats are your models in? How many polygons are they? Do they have textures? Do you need to be able to pick on individual elements in the model? I'll listen to just about anything you want to tell me.