SCM Library
Spherical Cube Map rendering library
 All Classes Files Functions Variables Friends Pages
Spherical Cube Map Library

LibSCM renders high-res spherical images. Specifically, LibSCM is a C++ class library that provides a heterogeneous data representation and rendering engine for the interactive display of spherical data sets at scales of hundreds of gigapixels and beyond. Applications include panoramic image display and planetary rendering. The SCM data representation enables out-of-core data access at real-time rates. The spherical geometry tessellator supports displacement mapping and enables the display of planetary terrain data of arbitrary resolution.

As an example, here is a screenshot of a interactive rendering of the Moon synthesized from 8 gigapixels of Lunar Reconnaissance Orbiter terrain data, textured using another 8 gigapixels of LRO surface imagery.

moon.jpg

The structure of a running SCM renderer is as shown in this image. An application generally instantiates a single scm_system object, and that object manages the rest of the structure.

scm.svg

Here, a box reperesents an object and a stack of boxes reperesents a collection of objects. A solid arrow is a strong (owning) reference, and a dotted arrow is a weak (non-owning) reference.

The scm_cache, scm_image, and scm_scene objects each maintain a weak reference to the scm_system that created them. By this reference they access system state, most notably scm_file data.