VTK - the Visualization ToolKit
1) Platforms, prices, and
company
☺
Unix-based platform, PCs (Windows 98/ME/NT/2000/XP), and Mac OSX Jaguar or later
☺
Free, open source
☺
Kitware, Inc.: http://www.kitware.com/
2) Applications
☺
The Visualization ToolKit (VTK) is a software system for 3D computer graphics, image processing, and visualization used by thousands of researchers and developers around the world. VTK consists of a C++ class library, and several interpreted interface layers including Tcl/Tk, Java, and Python. Professional support and products for VTK are provided by Kitware, Inc. VTK supports a wide variety of visualization algorithms including scalar, vector, tensor, texture, and volumetric methods; and advanced modeling techniques such as implicit modelling, polygon reduction, mesh smoothing, cutting, contouring, and Delaunay triangulation. In addition, dozens of imaging algorithms have been directly integrated to allow the user to mix 2D imaging / 3D graphics algorithms and data. The design and implementation of the library has been strongly influenced by object-oriented principles.
3)
Examples/Samples
4) Functions
Technical Overview: 3D Graphics
- Surface Rendering
- Volume Rendering
- A flexible software ray casting implementation
- Supports texture-based volume rendering
- Support for VolumePRO volume rendering hardware
- Supports mixing opaque surface geometry and volume rendering
- Rendering Primitives
- points
- lines
- polygons
- triangle strips
- volumes
- Interactive Viewer/Renderer "3D Widgets" for interacting with data
- Properties
- ambient, ambient color
- diffuse, diffuse color
- specular, specular color
- color (lights & object)
- transparency
- texture mapping
- shading (flat/Gouraud)
- backlighting on/off
- Lights
- Cameras
- parallel and perspective projection
- nice methods like elevation, azimuth, zoom, reset
- automatic camera/light creation
- Device Independent C++ code and/or Tcl, Java, Python scripts are independent of renderer type. Renderer type set at run-time with environment variable.
- Graphics Model
- Lights illuminate the scene
- Cameras define viewpoint
- Actors specify geometry/properties
- LOD actors support manual and automatic generation of level-of-detail to support interactive rendering for even the largest models.
- Assemblies group actors into arbitrary hierarchies
- Mappers define geometry/link into visualization pipeline
- Renderers coordinate lights, cameras, actors to create image
- Volumes are a type of actor with their own special properties
- Special Features
- Multiple windows/viewports
- Red/blue stereo
- Crystal eyes stereo
- Motion and focal blur
- Backface/frontface culling of polygons
- Save images to various file formats including png, jpeg, tiff, bmp and ppm.
Technical Overview: Visualization
- Modelling algorithms
- spheres, cones, cylinders, cubes, lines, planes, etc.
- axes, cursors, text, outlines
- implicit modelling
- decimation
- texture thresholding
- boolean textures
- glyphs
- cutting
- clipping (2D and 3D)
- probing
- normal generation
- connectivity
- triangle strip generation
- linear and rotational extrusion
- splatting
- swept surfaces/volumes
- multi-variate visualization
- scattered/unstructured point visualization
- appending, merging, cleaning data
- 2D & 3D Delaunay triangulation (including alpha shapes)
- Laplacian & Windowed sinc mesh smoothing
- Surface reconstruction
- Data Interface (Readers/Writers treat a single dataset; Importers/Exporters treat a scene.) variety of polygonal formats including stereo-lithography, MOVIE.BYU, Cyberware, etc.
- our own VTK formats (including a parallel XML format) for all data types
- Inventor Writer, IV Exporters
- 3D Studio Importer
- PLOT3D
- PNM
- RIB (RenderMan) Exporter
- SLC (Volume) Reader
- TIFF Writer
- VRML Exporter
- Wavefront .OBJ Exporter, .OBJ Reader
- BMP reader and writer
- Raw image formats
- Visualization Pipeline Demand-driven data-flow with automatic network updates
- Reference counting to reduce memory requirements
- Uses sources, filters, mappers to start, process, and terminate network
- Network looping and feedback supported
- Strongly type-checked to enforce filter connectivity
- Supports multiple input / multiple output filters
- Annotation
- 2D and 3D text
- Scalar bar (scalar to color index)
- x-y plots
- Flying axes
- Overlay plane drawing
- Attach overlay annotation to 3D positions
Technical Overview: Imaging
- Features
- Uses cached, streaming pipeline so that you can operate on gigantic datasets (i.e., deals with pieces of data). This is done completely transparently.
- Most imaging filters are multi-threaded for parallel execution
- Fully integrated with 3D graphics/visualization pipeline
- Filter types (a quick summary)
- diffusion filters
- Butterworth, low-pass, high-pass filters
- dilation, erosion, skeleton
- convolution
- difference, arithmetic, magnitude, divergence, gradient, mean
- distance
- FFT
- Fourier, Gaussian, Sobel
- histogram
- threshold
- permutation, conversion, padding
5)
Web Resources
☺
User Mailing List: http://public.kitware.com/mailman/listinfo/vtkusers
☺ A
large amount of examples and resources on VTK: http://www.barre.nom.fr/vtk/links-examples.html
☺ Book: http://www.amazon.com/exec/obidos/ISBN%3D0139546944/kitwareA/104-8390323-0566366