Welcome to the osgPPU webpage
osgPPU is a library to use with OpenSceneGraph. It provides you with a graph based specification of a computation pipeline which is based on so called PostProcessingUnits (PPUs). Each ppu does render a screen aligned quad in a frame buffer object. During the rendering a shader can be applied. The results (there could be many per one pass) are passed to the next ppu in the graph. The outcoming result of the pipeline can either be shown on the screen by using UnitOut? or used as a texture for other cool things.
I would be very appreciated on every input, like: critics, suggestions, patches etc.
Please use the osg-users mailing list for questions, patches, suggestion and so on...
- Very usefull also for GPGPU (general purpose GPU) computations
- Supports multiple rendering targets (MRT) as output of ppu
- Supports multiple inputs to a ppu
- Supports out of the pipeline texture inputs to a ppu
- Mipmapping supported
- Use UnitOutCapture? to capture frames in upto 4096x4096 resolution (or 8192x8192 on G80 GPUs)
- Use osgdb_ppu Plugin to load and to store the pipeline from and to the file
- Example application describes how to implement state of the art effects like HDR Rendering or DepthOfField? with osgPPU
- A lot of example pipelines (hdr, dof, motionblur, ssao, glow ...) are provided as .ppu files
- At least OpenGL 1.5 (support for FBOs and Shader programs is required)
- Shader Model 3.0 and higher GPUs (well tested on nVidia, no idea about ATI)
- OpenSceneGraph 2.4 and higher
osgPPU has moved to GitHub in order to provide better access for everybody. To get the latest revision of the source (works with latest osg trunk realease) use following command:
git clone git://github.com/cgart/osgPPU.git
Latest stable release is v0.4.0 (required osg 2.8.x). To get it you first need to checkout the full osgPPU repository from git and switch afterwards to corresponding tag.
git clone git://github.com/cgart/osgPPU.git git checkout osgPPU-0.4.0
or download the latest version from the Download section.
There exists a doxygen of the complete source code. You can find it here
A first time osgPPU was presented as a part of a project at the OpenSceneGraph BOF at Siggraph 2007 in San Diego, USA. You can download the presentation slides from here. During the User Meeting in Paris, France at April 2008, I have presented new interface of osgPPU. The presentation slides can be downloaded from here.
|17th, November 2011||osgPPU moved to GitHub. I think this should provide easier access for other developers and hence osgPPU code base might improve based on social coding aspects :)|
|15th, July 2009||After a big crash on our server, we are proudly to announce that most of the data was successfully recovered from the crashed disks. Both hard drives (main and backup) crashed in the same week. I assume they were from the same production line :). Getting the broken main drive from our hoster and using the freezer trick (freeze the hard drive in the refrigerator), I was able to recover the data corresponding to this project.|
|23th, February 2009||Versin 0.4 tagged. There are now couple of new units and examples in there. v0.4 is supporting osg 2.8 and provides to you a nice interface for simpler usage of Post Processing and GPGPU within OpenSceneGraph?. NEW: there is a CUDA example, showing how to use CUDA-Kernels in the osgPPU pipeline.|
|29th, January 2009||I've tagged v0.3.9 which is a prerelase before v0.4. Version 0.4 will be tagged as soon as osg2.8 is out. Current tagged release is compatilbe with osg 2.7.9 and provides small additional features in comparison to previous release. Check it out.|
|9th, October 2008||New release is tagged today. osgPPU offers now more stability and less bugs. Multithreading support was increased and a lot of bugs corrected. New ShaderAttribute? class as well as rendering to 3D and CubeMap? textures is possible now. There are couple of new examples showing all new fetures in action. Enjoy!|
|19th, September 2008||osgPPU repository has moved to a new server. Now a direct access through http protocol is possible. This allows users with some strict proxy firewall rules to checkout osgPPU. The upcoming release is almost done ;).|
|27th, August 2008||osgPPU is slowly moving to be released as 0.3 version. There are couple of new examples and new features added. As soon as multiprocessing issues are solved the new version will go online. Take a look into the current svn state.|
|14th, May 2008||New release v0.2 of the osgPPU library is out there. It has improved performance and stability. The interface changed to support more graph like structure of the whole ppu pipeline. Check out the latest release. There are now also new examples included.|
|28th, April 2008||I gave a small presentation about me and the osgPPU during the OSG User Meeting in Paris, France. Here you can find some fotos of that event. The presentation slides can be downloaded from here.|
|22th, April 2008||Check out the current trunk branch to get the newest version of osgPPU. There is now more intuitive interface provided which enables you to include the ppu pipeline directly into the scene graph. The writing and reading of .ppu files works now also perfectly.|
|27th, March 2008||After some developing and testing time the first developer release of the osgPPU is now done. Checkout it from the svn or download it from the download section, to get into the world of osgPPU ;-)|
|29th, January 2008||New osgdb_ppu plugin is capable of storing and loading of osgPPU Pipelines from files. Currently the plugin is in the test phase and do not work very well for highly complex pipelines. New example application was added to allow viewing of stored pipelines (e.g. "./viewer Data/blur.ppu" will use the blur pipeline to blur your input). Just take a look.|
|19th, January 2008||osgPPU does now compiles under Windows. Thank to Stephane Lamoliatte for providing a proper CMake build system to the osgPPU project. Currently osgPPU is under heavy development and there is less time left before first developer release (pre stable release). To accomplish this mission some more test on different platforms and in different applications are required.|