Publication
SIGGRAPH 2007
Conference paper

SPVN: A new application framework for interactive visualization of large datasets

Abstract

We present SPVN (Scalable Parallel Visual Networking), a new application framework for interactive visualization of large datasets. We designed SPVN with four main goals in mind. First, we wanted to make it easier for developers to write visualization applications that can handle massive datasets and deliver interactive frame rates. SPVN provides developers with efficient implementations of many optimization techniques such as spatialization, simplification, view-frustum culling, occlusion culling, multithreading, and prefetching. Second, we wanted developers to better leverage the performance and scalability of a cluster of inexpensive rendering servers, while insulating them from the complexities of distributed programming. SPVN provides implementations of sort-first rendering with dynamic load balancing, sort-last rendering with depth-order and binary-swap image compositing, and a distributed shared memory mechanism that gives programmers the illusion that all machines have all the data at all times. Third, we wanted to support multiple low-level rendering libraries. SPVN separates modeling from rendering so that the same scene can be rendered by different backends (e.g., OpenGL, DirectX, or ray tracing). Finally, we wanted SPVN to be easy to use and extend. SPVN uses the familiar concept of a scene graph, applies many well-established design patterns (e.g., smart pointers, factories, observers, and visitors), and allows for extensions of shape classes, rendering algorithms, and file formats using registry and plug-in mechanisms. We have used SPVN to develop both remote and immersive visualization applications, and found that SPVN reduces the amount of time and money it takes to write such applications.