JMVP : OsgVolume


The OsgVolume Project:


1.0 The OpenSceneGraph:

The OpenSceneGraph is a cross platform, scalable, real time, open source scene graph that has over 1500 active developers world wide and users such as NASA, European Space Agency, Boeing, Magic Earth, American Army, and many others. Enabling the rapid development of custom visualisation programs, the OSG is also the power behind OsgVolume and Present3D.


2.0 OsgVolume:

Currently there is an opportunity to become involved in the new OSGVolume project that will add high resolution volume rendering to the OSG. This project would result in a suite of core volume rendering tools being developed to meet the joint aims of the Scottish Medical Schools and other researchers, additional custom tools can then be created to meet each Schools/researchers/practitioners individual requirements. Present3D, also open source, currently supports the OsgVolumeproject and will continue to be developed to take advantage of new features as they become available.


OsgVolume is an open source project, this means that the source code is freely available and shared with developers world wide and has many advantages:


2.1 An open source license grants end users rights to use, and distribute the software free of charge - this makes it cost effective and logistically simple to make the software widely available.


2.2 An open source license grant developers the right to freely develop applications on top of the open source product - this allows many new products to be developed that leverage the common open source base


2.3 An open source license grant developers the right to modify the source code of the product, and to publish these modifications for folding back in to the core open source products.


2.4 The rights granted to developers and end users breaks the dependancy on a single provider, reducing risk on the end user from vendor lock in, and the consequences that this has, such as when a vendor stops supporting a particular product.


2.5 Open source projects create large communities of like minded developers and users that can help provide support and to contribute to the open source products development. For instance the OSG development community is over 1000 strong, and composed of many industry leading experts in the field of real-time computer graphics.


2.6 The result of this project will not just be those directly funded, but many other medical and research projects world wide will benefit from this work and contribute back to the original project ensuring ongoing development and a growing community.



3.0 Present3D:

Present3D allows anyone to create amazing realtime, fully interactive stereo presentations that include point cloud and polygonal models, images and stereo pairs, movies and stereo movies, audio, text and bulleted text and combine with animation paths, alpha blending and much much more..... there is no other tool that allows all these different data types to be combined into a seamless presentation with such simplicity and of course it all works in stereo as well. Present3D can also be used to create stand alone programs or interactive kiosks. The addition of volume rendering for MRI/CT scans and Confocal Microscopy to Present3D allows this powerful tool to be used in the creation of medical education materials, lectures and courseware. These can then be presented in stereo using projection based displays in lecture theatres and seminar rooms, can be made available in libraries for individual study by use of autostereoscopic monitors, and can also be shared with students for use on their own hardware where it will run in mono if a stereo system is not available. Present3D is open source.



4.0 OsgVolume Project Outline:

Follows is an outline for a proposed volume rendering NodeKit? from the OpenSceneGraph. The project has partial funding approval. If you'd like to help fund or contribute to this development please contact us.


Phase one:

1) Interoperability:

1.a) DICOM reading

1.b) Integration with Present3D and other OpenSceneGraph based viewers.

1.c) ASCII and binary support for reading and writing osgVolume scene graphs.

2) Rendering:

2.a) Multi texture bricks - arranged as a multi-resolution hierarchy

2.b) Transfer functions:

i) pre-computed on CPU,

ii) encoded into 1D textures

iii) computed on GPU as part of a shader

2.c) Handling of mixed data types - polygons, lines, text and volumes in one space

2.d) Support for range of hardware/driver capabilities

i) Standard Texture3D, with a range of max texture sizes

ii) ARB vertex and fragment program

iii) OpenGL 2.0 Shader Language

iv) NVidia's compressed 3D textures

2.e) Clipping planes + boxes

2.f) Polygonal segmentation

2.g) Automatic quality control - render at high speed/lower quality when moving vs

high quality techniques when rendering slowly.

2.h) Dynamic Video Resizing.

3) Data processing:

3.a) Iso-surface generation

3.b) Length, Area and Volume computation

3.c) Image Processing:

i) Biasing / Transfer functions

ii) Flood fill segmentation

iii) Manifold segmentation

4) User interface:

4.a) Support for mouse, keyboard and gamepad in an interchangeable way

4.b) Control of eye point

4.c) Control of clipping planes/boxes

4.d) Control of transfer function curves and colours

4.e) Annotation

4.f) Flood fill segmentation control

4.g) Isosurface generation/segmentation control

4.h) Measurement of lengths, areas and volumes

4.i) File selection, quality specification


Second phase :

1) Interoperability

1.d) DICOM writing

1.e) Full DICOM system integration

1.f) 3rd Party tool integration i.e. browsers, other medical tools

2) Rendering

2.i) Volume Paging

2.j) Multiple GPU rendering + compositing

2.k) Cluster rendering

2.l) 3D video texturing via either of:

i) custom stream 3D texture format

ii) 2D video stream built to stream one or more slices at one time to build up animated 3D texture.

3) Data processing

3.d) Image processing cont.

i) Sharpening

ii) Edge detection

iii) Smoothing

iv) Correlations

4) User Interface

j) Control of the above phase two items



Support OsgVolume

You can support the development of OsgVolume by making a donation or, if you are a developer, by getting your hands dirty and becoming directly involved..


You will find information on making a donation here:


To register an interest in becoming involved please contact us:


osgvolume "at"


replacing the "at" with @ as usual :-)