Für eine korrekte Darstellung dieser Seite benötigen Sie einen XHTML-standardkonformen Browser, der die Darstellung von CSS-Dateien zulässt.


  Fak IV / Dept. ET-I  /  CG  /  svt  /  osgCompute  / 
Sitemap
 

Welcome to osgCompute - a nodekit for OpenSceneGraph

osgCompute is the abstract base library for the execution of code on parallel streaming processors. The library is connected to OpenSceneGraph (OSG) and thus it can be included in the scenegraph. It gives the user the possibility to jump to the Graphics Processing Unit (GPU) for any kind of calculations. The manipulated data is then afterwards available to the scenegraph for further processing (e.g. rendering).

osgCompute feat. osgCuda

osgCuda is based on the osgCompute library and implements the specific functionality for NVIDIA's CUDA. CUDA is a general purpose parallel computing architecture that leverages the parallel compute engine in NVIDIA GPUs to solve many complex computational problems in a fraction of the time required on a CPU.


For support please subscribe to the public mailing list of OpenSceneGraph or go directly to the OpenSceneGraph forum which is synchronized with the mailing lists.


Examples

The osgCompute library contains some examples which show the library's usage and its capabilities in principle. For any details please examine the source code of the examples.

Example: Texture osgTraceDemo uses the new osgCuda serializer and loads a scene graph from a file. The two modules which are used in the computation are loaded from libraries. The result of the vortex field's tracing is rendered by OSG.
Example: Texture osgTexDemo loads an osg::Image which is then processed by an osgCuda::Module. The module uses CUDA arrays and CUDA texture filtering. Finally, the result is rendered by OSG.
Example: Geometry osgGeometryDemo uses osgCuda and the OSG scenegraph for a deformation of the geometry. The osgCuda::Module "warp" moves the vertices along the normal vector. The result is then rendered by OSG.
Example: Particles osgParticleDemo uses osgCuda and the OSG scenegraph for a simple particle movement. Two osgCuda::Modules take care of the particle emitter and the particle mover functionality. The result calculated by the modules is then rendered by OSG using a point sprite approach for proper visualization.
Example: Endianness osgEndiannessDemo uses osgCuda for computing a simple swap of the byte order of a given input stream. This example demonstrates the usage of osgCuda with no OpenGL functionality.

Features

osgCompute takes advantage of parallel streaming processors on GPUs. It offers a simple interface for GPU progamming which dramatically increases the speed of your application (since osgCuda is the only library which implements this functionality we refer to some CUDA specific terms in the following):

  • Jump to the GPU within the OSG scenegraph for GPU calculations
  • Further processing of the GPU data within the OSG scenegraph
  • Basic data types of the streaming processors are encapsulated in Buffers
  • Buffers ensure a proper exchange of OSG and CUDA data types as well as between various modules
  • Quick start for scientific visualization
  • Examples easily describe how to use the library
  • osgCuda supports the latest Runtime API of CUDA
  • Easy debugging of the graphics kernels

Documentation

There exists a doxygen documentation of the complete source code. You can find it here.

Download

Source: Please use the following svn command in order to get the latest revision of the osgCompute source:
svn co https://svn.cg.informatik.uni-siegen.de/svt/osgCompute/trunk osgCompute

Example Data: If the examples are compiled please ensure that the data will be available. Please add the path of the data directory to your OSG_FILE_PATH environment variable. This ensures that OSG is able to load the necessary data successfully. The latest svn revision of the data can be obtained here:
svn co https://svn.cg.informatik.uni-siegen.de/svt/osgCompute-Data/trunk osgCompute-Data

Or download the following source packages (we recommand to compile and run the sources with the osg-version they were created for):

File Description Size Date Versions
osgCompute-1.1.zip Latest developer release 630KB 11/08/11 OSG-2.9.6 or newer
osgCompute-Data-1.1.zip Example data 168KB 11/08/11  

Older Versions:
osgCompute-1.0.zip   623KB 04/06/11 OSG-2.9.6 or newer & CUDA 4
osgCompute-Data-1.0.zip   168KB 04/06/10  
osgCompute-0.8.zip   193KB 08/03/10 OSG-2.9.6 or newer & CUDA 3.x
osgCompute-Data-0.8.zip   403KB 08/03/10  
osgCompute-0.7.zip   153KB 03/30/10 OSG-svn/trunk/2.9.6
osgCompute-Data-0.7.zip   170KB 03/30/10  
osgCompute-0.6.zip   153KB 12/16/09 OSG-2.9.6
osgCompute-Data-0.6.zip   170KB 12/16/09  
osgCompute-0.5.zip   150KB 12/10/09 OSG-2.8.x
osgCompute-Data-0.5.zip   170KB 12/10/09  
osgCompute-0.4.zip   153KB 09/28/09 OSG-2.8.x
osgCompute-Data-0.4.zip   170KB 09/28/09  
osgCompute-0.2.zip   132KB 04/09/09 OSG-2.8.x
osgCompute-Data-0.2.zip   170KB 04/09/09  
osgCompute-0.1.zip   130KB 04/06/09 OSG-2.8.x
osgCompute-Data-0.1.zip   170KB 04/06/09  

Requirements

  • We recommend using the OSG-2.8 branch or even the current OSG-svn/trunk/2.9.x version of OpenSceneGraph for testing the latest developer release of osgCompute, although it should also work with former OpenSceneGraph versions
  • CMake build system to generate a platform-specific build environment
  • osgCuda needs a proper CUDA driver for your NVIDIA graphics card

Restrictions

  • The current SVN version of OpenSceneGraph (OSG-svn/trunk/2.9.x or later) or the upcoming release of OpenSceneGraph-2.8.1 is recommended for the support of multithreading with osgCuda
  • The Driver API is currently not supported by osgCuda

News

9th, November 2011Announcement: we will tag a new version of osgCompute within the next few days. It will include some major changes in the API and makes it even easier to understand the basic ideas behind osgCompute. Stay tuned :-)
8th, November 2011The version 1.1 of osgCompute has been released (it is based on the SVN revision 428). Basically, we just fixed some bugs of the previous version 1.0.
6th, April 2011The version 1.0 of osgCompute has been released. A documentation has been added. Please download the latest version of osgCompute or check out the SVN trunk.
3rd, August 2010The version 0.8 of osgCompute has been released. It requires CUDA 3.x and OSG-2.9.8 or later. osgCompute supports OSG's new serializer and a new example (osgTrace) has been added. Please download the latest version of osgCompute or check out the SVN trunk.
30th, March 2010Version 0.7 of osgCompute has been tagged. This version includes some minor bug fixes and provides easy context handling (see download section).
16th, December 2009Version 0.6 of osgCompute has been tagged. This version is compatible with the current OSG-svn/trunk/2.9.6 version (see download section).
In addition to Windows and Linux operating systems the current version of osgCompute officially supports Mac OS X.
10th, December 2009Version 0.5 of osgCompute has been tagged. Please see the download section for further details.
11th, November 2009A new example "osgGeometryDemo" has been added.
28th, September 2009osgCompute has been continuously updated during the last months. Please download the latest tagged version (0.4) of osgCompute or check out the SVN trunk.
20th, April 2009SVN trunk is now open to the public and can be downloaded. Since the documentation is not finished yet please refer to the examples to obtain any explanations.

License

osgCompute is protected by Copyright, and is licensed as OpenSource, so the source code is freely available, modifyable and redistributed under terms of the Lesser Gnu Public License (LGPL).

Acknowledgements

We would like to thank Robert Osfield for his support regarding osgCompute and for his incredible work on OpenSceneGraph. Additionally, we would also like to thank Art Tevs for discussing some design questions as well as testing the modules.

More Information

J. Orthmann, M. Keller and A. Kolb:
Integrating GPGPU Functionality into Scene Graphs
In 14th International Workshop on Vision, Modeling, and Visualization, 2009

Contact

osgCompute is developed and maintained by the SVT group which consists of members of the Computer Graphics and Multimedia Systems Group of the University of Siegen, Germany.

For support on osgCompute (incl. osgCuda) please subscribe to the public mailing list of OpenSceneGraph or go directly to the OpenSceneGraph forum which is synchronized with the mailing lists.