VTK has been installed and tested on nearly every Unix-based platform, PCs (Windows 98/ME/NT/2000/XP), and Mac OSX Jaguar or later.
download:
http://www.vtk.org/get-software.php
technical paper:
http://www.vtk.org/pdf/dioot.pdf
Technical Overview: Software
- Over 700 C++ classes
- 350,000+ lines of C++ code (110,000 executable lines)
- Designed using the approach of Rumbaugh et al. ( Object-Oriented Modelling and Design from Prentice-Hall)
- 215,000+ lines of automatically generated Tcl wrapper code (similar counts for Python and Java)
- In-line documentation (both in-code and man pages)
- Easy to understand C++ code (honest!)
- Designed to be extensible
- Lots of examples, applications, test cases, and data
- Supports portable multithreading and distributed memory for parallel algorithms (download J. Ahrens's (Los Alamos Nat'l Lab) VTK Parallel Paper).
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
- infinite
- spot
- Cameras
- parallel and perspective projection
- nice methods like elevation, azimuth, zoom, reset
- automatic camera/light creation
- parallel and perspective projection
- 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
- Lights illuminate the scene
- 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.
- Multiple windows/viewports
Technical Overview: Visualization
- Data Types:
- polygonal data (points, lines, polygons, triangle strips)
- images and volumes (i.e., structured point datasets)
- structured grids (e.g., finite difference grids)
- unstructured grids (e.g, finite element meshes)
- unstructured points
- rectilinear grids
- polygonal data (points, lines, polygons, triangle strips)
- Cell Types:
- vertex, poly-vertex
- line, poly-line
- triangle
- triangle strip
- pixel
- quadrilateral
- polygon
- tetrahedron
- voxel
- hexahedron
- wedge
- pyramid
- vertex, poly-vertex
- Attribute Types:
scalars (single valued plus grayscale, grayscale-alpha, rgb, and rgb-alpha).
vectors
3x3 tensors
normals
texture coordinates (1-3D)
field data
Scalar algorithms
color mapping
carpet plots
iso-contouring: marching cubes
iso-contouring: dividing cubes
thresholding
scalar generation from other data (elevation, velocity, etc.)
Vector algorithms
hedgehogs
streamlines
dashed streamlines
stream points
stream surfaces
streampolygon
displacement plots/warping
Tensor algorithms
tensor ellipsoids
tensor glyphs
hyper-streamlines
Information Visualization
parallel coordinates
programmable glyphs
splatting
dimension reduction
- 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
- spheres, cones, cylinders, cubes, lines, planes, etc.
- 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
- our own VTK formats (including a parallel XML format) for all data types
- 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
- Reference counting to reduce memory requirements
- 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
- 2D and 3D text
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
- Uses cached, streaming pipeline so that you can operate on gigantic datasets (i.e., deals with pieces of data). This is done completely transparently.
- 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
- diffusion filters
In A Nutshell
- What's Cool About VTK
- It's free (although the books help!)
- Easy to create graphics/visualization applications
- C++ source code - you have a lot of control
- Easy to derive new classes
- Can prototype or build applications using "interpretive" languages Tcl, Python, and Java
- User interface can be created fast with Tk or Java GUI class libraries
- Can learn about graphics / visualization / imaging
- Supports an extensive palette of 3D widgets
- Platform/rendering library independent
- Lots of advanced and very useful algorithms
- Integrated software, not a bunch of unreleated snippets of code
- You can convert data into pictures
- Object-oriented
- Heavily tested in real-world applications...not academic code
- Large user base provides decent support
- Commercial support and consulting available
- It's free (although the books help!)
- What's UnCool About VTK
- Not a super-fast graphics engine...VTK uses C++ dynamic binding and a device independent graphics model.
- C++ source code (so use Tcl, Python, or Java)
- Very large...not a toy...you'll need a decent system to use it effectively
- Not a super-fast graphics engine...VTK uses C++ dynamic binding and a device independent graphics model.
There are multiple ways to get the software: The installer for the Windows platform contains vtk.exe which is essentially a wish.exe replacement that allows you to run VTK TCL scripts without doing any other installation or configuration. Tcl/Tk 8.4.13 is statically linked into the 5.0.4 build of vtk.exe. For Python or Java support, or for Linux or Macintosh systems, you will have to compile VTK from source code using CMake and a native build system for your platform. Unsupported Linux Pre-Compiled Binaries (RPMS) You can download RPMS for VTK from Creatis VTK web page. Thanks go to the Creatis team at Insa-Lyon (France) for maintaining them. Questions regarding these packages should be forwarded to a Creatis representative.You can also:
|
No comments:
Post a Comment