Here's a screenshot from one of the new SurRender Umbra demos. Umbra is a
visibility determination library that can be plugged into any 3D rendering
engine to handle
early culling of hidden objects (hierarchical VF culling, occlusion culling,
contribution culling). The library supports completely dynamic scenes and
no visibility pre-processing.
This real-time demonstration shows how objects can be "on-demand loaded"
from massive world
databases. The demo loads objects from a database file when they become
"almost visible". The loading
never stalls the rendering - if an object hasn't been loaded in time, it is
not rendered until its data has been fully
streamed in. Objects that have not been visible for a while are removed from
the database and swapped
back to the disk.
The database in the picture contains two million objects. All models have
108 triangles and 258 vertices,
thus pumping the total triangle count to 216M. The database file requires
130Mb of disk space.
The memory used by the visible portion of the database (and other Umbra
allocations) is around 1.5Mb. The database
is not static: 120,000 of the objects are moving around every frame. The
startup time of the application is
a couple of seconds.
The image on the right side of the window shows a bird's eye view of the
view frustum has been marked in transparent gray and the objects visible to
the camera on the left
This and other Umbra demos can be downloaded from the SurRender Umbra
home page (http://surrender3d.com/umbra). All of the demos run through Umbra
Visualizer, a fully portable (OpenGL+GLUT) rendering framework.