In late June, the VTK community released VTK 6.0, the first major release since 5.0 in December 2005! This release includes significant refactoring of VTK’s pipeline and build system. Pipeline changes have cleanly separated the Algorithm, DataObject, and Executive classes. Build system changes automate and simplify intra-library build time dependency analysis. Together these changes facilitate the addition of new features to and removal of unwanted features from VTK.
In addition to a number of low-level changes, there are also a number of new features in VTK 6 that are more readily-apparent to users of applications built with VTK; many of these new additions have also been included as part of ParaView 4. This includes the ability to map values to discrete color sets; vtkScalarstoColors and subclasses new support an IndexedLookup mode where only values that exactly match an annotation are assigned a color.
VTK’s text rendering capabilities have also been greatly extended. Text can be output to vector-graphics friendly raw Bezier curves, system fonts may be accessed through the FreeTypeFontConfig module, and mathematical equations can be rendered with the matplotlib Python package. The charting functionalities have seen a number of changes as well, including the addition of 3D charts and seamless transitions between 2D and 3D chart projections.
In regards to filters, there is a new polyhedron surface mode where users draw arbitrarily-shaped regions on the screen and extraction filters return all the surface elements within. The serial and parallel particle tracing filters, which track particles in time-varying vector fields, now run faster and more efficiently. Lastly, there are new Adaptive Mesh Resolution and HyperTree data types and filters included that are designed for visualization of large, multi-resolution scientific datasets. There is also a new vtkDeformPointSet filter included in this release.
Lastly, VTK 6 can leverage modern Mesa 3D OpenGL capabilities as it is no longer limited to the GL version 1.1 support whenever Mesa is in use. This extends VTK’s rendering capabilities, especially in HPC applications where rendering is typically done off-screen on supercomputers that lack graphics hardware.