A shader-based parallel rendering framework

Existing parallel or remote rendering solutions rely on communicating pixels, OpenGL commands, scene-graph changes or application-specific data. We propose an intermediate solution based on a set of independent graphics primitives that use hardware shaders to specify their visual appearance. Compared to an OpenGL based approach, it reduces the complexity of the model by eliminating most fixed function parameters while giving access to the latest functionalities of graphics cards. It also suppresses the OpenGL state machine that creates data dependencies making primitive re-scheduling difficult. Using a retained-mode communication protocol transmitting changes between each frame, combined with the possibility to use shaders to implement interactive data processing operations instead of sending final colors and geometry, we are able to optimize the network load. High level information such as bounding volumes is used to setup advanced schemes where primitives are issued in parallel, routed according to their visibility, merged and re-ordered when received for rendering. Different optimization algorithms can be efficiently implemented, saving network bandwidth or reducing texture switches for instance. We present performance results based on two VTK applications, a parallel iso-surface extraction and a parallel volume renderer. We compare our approach with Chromium. Results show that our approach leads to significantly better performance and scalability, while offering easy access to hardware accelerated rendering algorithms.

[1]  Randi J. Rost OpenGL(R) Shading Language (2nd Edition) , 2005 .

[2]  Henry Fuchs,et al.  A sorting classification of parallel rendering , 1994, IEEE Computer Graphics and Applications.

[3]  Thomas A. Funkhouser,et al.  Hybrid sort-first and sort-last parallel rendering with a cluster of PCs , 2000, Workshop on Graphics Hardware.

[4]  Eric Charles Olson Cluster Juggler - PC cluster virtual reality , 2002 .

[5]  Randima Fernando,et al.  The GeForce 6 series GPU architecture , 2005, SIGGRAPH Courses.

[6]  Michael Gleicher,et al.  Non-invasive, interactive, stylized rendering , 2001, I3D '01.

[7]  Kenneth Moreland,et al.  Sort-last parallel rendering for viewing extremely large data sets on tile displays , 2001, Proceedings IEEE 2001 Symposium on Parallel and Large-Data Visualization and Graphics (Cat. No.01EX520).

[8]  Russell M. Taylor,et al.  VRPN: a device-independent, network-transparent VR peripheral system , 2001, VRST '01.

[9]  Greg Humphreys,et al.  Chromium: a stream-processing framework for interactive rendering on clusters , 2002, SIGGRAPH.

[10]  Mark Segal,et al.  The OpenGL Graphics System: A Specification , 2004 .

[11]  Thomas Ertl,et al.  Smart Hardware-Accelerated Volume Rendering , 2003, VisSym.

[12]  Gerrit Voss,et al.  Multi-threading and clustering for scene graph systems , 2004, Comput. Graph..

[13]  Werner Purgathofer,et al.  Christmas tree case study: computed tomography as a tool for mastering complex real world objects with applications in computer graphics , 2002, IEEE Visualization, 2002. VIS 2002..

[14]  Andries van Dam PHIGS+ functional description revision , 1988, SIGGRAPH 1988.

[15]  Anselmo Lastra,et al.  A shading language on graphics hardware: the pixelflow shading system , 1998, SIGGRAPH.

[16]  William J. Schroeder,et al.  A Parallel Approach for Efficiently Visualizing Extremely Large, Time-Varying Datasets , 2000 .

[17]  William R. Mark,et al.  Cg: a system for programming graphics hardware in a C-like language , 2003, ACM Trans. Graph..

[18]  Matt Pharr,et al.  Gpu gems 2: programming techniques for high-performance graphics and general-purpose computation , 2005 .

[19]  Kai Li,et al.  Software environments for cluster-based display systems , 2001, Proceedings First IEEE/ACM International Symposium on Cluster Computing and the Grid.

[20]  Chaoli Wang,et al.  Parallel Multiresolution Volume Rendering of Large Data Sets with Error-Guided Load Balancing , 2004, EGPGV.

[21]  Kenneth Moreland,et al.  From cluster to wall with VTK , 2003, IEEE Symposium on Parallel and Large-Data Visualization and Graphics, 2003. PVG 2003..

[22]  Gordon Stoll,et al.  Lightning-2: a high-performance display subsystem for PC clusters , 2001, SIGGRAPH.

[23]  Michael Gleicher,et al.  HijackGL: reconstructing from streams for stylized rendering , 2002, NPAR '02.

[24]  Kwan-Liu Ma,et al.  Parallel volume rendering using binary-swap compositing , 1994, IEEE Computer Graphics and Applications.

[25]  Elaine Cohen,et al.  A non-photorealistic lighting model for automatic technical illustration , 1998, SIGGRAPH.

[26]  Martin Kraus,et al.  High-quality pre-integrated volume rendering using hardware-accelerated pixel shading , 2001, HWWS '01.

[27]  Pat Hanrahan,et al.  A language for shading and lighting calculations , 1990, SIGGRAPH.

[28]  Jérémie Allard,et al.  FlowVR: A Middleware for Large Scale Virtual Reality Applications , 2004, Euro-Par.

[29]  Lloyd Treinish,et al.  An extended data-flow architecture for data analysis and visualization , 1995, COMG.

[30]  Maneesh Agrawala,et al.  Non-invasive interactive visualization of dynamic architectural environments , 2003, I3D '03.

[31]  Paul S. Strauss IRIS Inventor, a 3D graphics toolkit , 1993, OOPSLA '93.

[32]  Pat Hanrahan,et al.  A real-time procedural shading system for programmable graphics hardware , 2001, SIGGRAPH.