Voreen
Encyclopedia
Voreen is an easy to use and highly flexible open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 volume visualization library and development platform. Through the use of GPU-based state-of-the-art volume rendering
Volume rendering
In scientific visualization and computer graphics, volume rendering is a set of techniques used to display a 2D projection of a 3D discretely sampled data set.A typical 3D data set is a group of 2D slice images acquired by aCT, MRI, or MicroCT scanner....

 techniques it allows high frame rates on standard graphics hardware to support interactive volume exploration.

History

Voreen has been initiated at the Department of Computer Science at the University of Münster
University of Münster
The University of Münster is a public university located in the city of Münster, North Rhine-Westphalia in Germany. The WWU is part of the Deutsche Forschungsgemeinschaft, a society of Germany's leading research universities...

, Germany
Germany
Germany , officially the Federal Republic of Germany , is a federal parliamentary republic in Europe. The country consists of 16 states while the capital and largest city is Berlin. Germany covers an area of 357,021 km2 and has a largely temperate seasonal climate...

 in 2004 and was first released on 11th April 2008 under the
GNU general public license (GPL)
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

. Voreen is written in C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

 using the OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...


graphics library, and is able to achieve high interactive frame rates on consumer graphics hardware. It is platform independent and compiles on Windows, Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

 and Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

. The source code and documentation, and since July 2009 also pre-compiled binaries for Windows and Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...

, are available from its website and via Subversion. Although it is intended and mostly used for medical applications, any other kind of volume data can be handled, e.g., microscopy, flow data or other simulations .

Concepts

The visualization environment VoreenVE based on that engine is designed for authoring
and performing interactive visualizations of volumetric data. Different visualizations
can be assembled in form of so called networks via rapid prototyping
Rapid application development
Rapid application development is a software development methodology that uses minimal planning in favor of rapid prototyping. The "planning" of software developed using RAD is interleaved with writing the software itself...

,
with each network consisting of several processors. Processors perform more or less specialized tasks for the entire rendering process, ranging
from supplying data over raycasting, geometry creation and rendering to image processing. Within the limits
of their respective purposes, the processors can be combined freely with each other,
and thereby granting a great amount of flexibility and providing a uniform way of
handling volume rendering
Volume rendering
In scientific visualization and computer graphics, volume rendering is a set of techniques used to display a 2D projection of a 3D discretely sampled data set.A typical 3D data set is a group of 2D slice images acquired by aCT, MRI, or MicroCT scanner....

. Authors who need to implement a certain rendering
technique can confine their work basically on the development of new processors,
whereas users who only want to access a certain visualization simply need to employ
the appropriate processors or networks and do not need to care about technical
details.

Features

Visualization
  • Direct volume rendering (DVR), isosurface
    Isosurface
    An isosurface is a three-dimensional analog of an isoline. It is a surface that represents points of a constant value within a volume of space; in other words, it is a level set of a continuous function whose domain is 3D-space.Isosurfaces are normally displayed using computer graphics, and are...

     rendering, maximum intensity projection
    Maximum intensity projection
    In scientific visualization, a maximum intensity projection is a volume rendering method for 3D data that projects in the visualization plane the voxels with maximum intensity that fall in the way of parallel rays traced from the viewpoint to the plane of projection...

     (MIP)
  • Support of different illumination models (Phong reflection model
    Phong reflection model
    The Phong reflection model is an empirical model of the local illumination of points on a surface...

    , tone shading
    Non-photorealistic rendering
    Non-Photorealistic rendering is an area of computer graphics that focuses on enabling a wide variety of expressive styles for digital art. In contrast to traditional computer graphics, which has focused on photorealism, NPR is inspired by artistic styles such as painting, drawing, technical...

    , ambient occlusion
    Ambient occlusion
    Ambient occlusion is a shading method used in 3D computer graphics which helps add realism to local reflection models by taking into account attenuation of light due to occlusion...

    )
  • Interactive internal and external labeling
  • Flexible combination of image processing operators (depth darkening, glow, chromadepth, edge detection
    Edge detection
    Edge detection is a fundamental tool in image processing and computer vision, particularly in the areas of feature detection and feature extraction, which aim at identifying points in a digital image at which the image brightness changes sharply or, more formally, has discontinuities...

    )
  • Glyph-based visualization of multimodal datasets (not yet publicly available)
  • Visualization of time-varying as well as segmented 3D datasets
  • Support for 1D and 2D transfer functions
    Transfer function
    A transfer function is a mathematical representation, in terms of spatial or temporal frequency, of the relation between the input and output of a linear time-invariant system. With optical imaging devices, for example, it is the Fourier transform of the point spread function i.e...

    /CLUTs
    CLUT
    A colour look-up table is a mechanism used to transform a range of input colours into another range of colours. It can be a hardware device built into an imaging system or a software function built into an image processing application...



Interaction
  • Up to 6 axis aligned clipping planes
  • Editors for 1D and 2D transfer functions
  • Editable lighting and material parameters
  • Distance measurements (not yet publicly available)


Data I/O
  • Support for several volume file formats (DICOM, TIFF stacks, RAW, interfile, Vevo, …)
  • Preprocessing capabilities (volume cropping, gradient calculation, downscaling, filtering)
  • High-resolution screenshot and camera animation generation with anti-aliasing
    Anti-aliasing
    In digital signal processing, spatial anti-aliasing is the technique of minimizing the distortion artifacts known as aliasing when representing a high-resolution image at a lower resolution...

  • Python
    Python (programming language)
    Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

    scripting for offline image processing and visualization

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK