Integrating GPGPU Functionality into Scene Graphs

The concept of scene graphs is widely used in computer graphics to structure graphics-related entities, e.g. geometry, visual attributes as well as abstract data related to certain application requirements like object identifiers or manufacturing details. This paper presents a new method to incorporate General Purpose Graphics Programming Unit (GPGPU)-functionality into scene graph APIs. We define specific scene graph nodes in order to realize a flexible integration of GPU functionality at various levels of granularity without violating the programming paradigm inherent to scene graphs. We focus on current and upcoming compute APIs like CUDA, which are designed for GPGPU purposes. We further present the osgCompute framework that implements our concept and is based on the OpenSceneGraph API. CUDA is integrated into osgCompute via osgCuda. Our method is flexible in the sense that other compute APIs could be used instead. The advantages of our concept and ofosgCuda are demonstrated by presenting examples with different processing requirements.

[1]  Paul S. Strauss,et al.  An object-oriented 3D graphics toolkit , 1992, SIGGRAPH.

[2]  Patric Ljung,et al.  Scene graph-based construction of CUDA kernel pipelines for XIP , 2008, HiPC 2008.

[3]  Cyril S. Ku,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[4]  Josie Wernecke,et al.  The inventor mentor - programming object-oriented 3D graphics with Open Inventor, release 2 , 1993 .

[5]  Klaus H. Hinrichs,et al.  A Generic Rendering System , 2002, IEEE Trans. Vis. Comput. Graph..

[6]  Don Burns,et al.  Open Scene Graph A: Introduction, B: Examples and Applications , 2004, IEEE Conference on Virtual Reality and 3D User Interfaces.

[7]  Gerrit Voss,et al.  A multi-thread safe foundation for scene graphs and its extension to clusters , 2002, EGPGV.

[8]  Aaftab Munshi,et al.  The OpenCL specification , 2009, 2009 IEEE Hot Chips 21 Symposium (HCS).

[9]  Dirk Reiners,et al.  OpenSG: a scene graph system for flexible and efficient realtime rendering for virtual and augmented reality applications , 2002 .

[10]  Christopher G. Lasater,et al.  Design Patterns , 2008, Wiley Encyclopedia of Computer Science and Engineering.

[11]  John Rohlf,et al.  IRIS performer: a high performance multiprocessing toolkit for real-time 3D graphics , 1994, SIGGRAPH.

[12]  Grigore C. Burdea,et al.  Introduction to VR Technology , 2004, IEEE Conference on Virtual Reality and 3D User Interfaces.