[vtkusers] announce: vtk 8.1.0.rc1 is ready to try

David E DeMarle dave.demarle at kitware.com
Wed Nov 8 13:34:35 EST 2017

Hi folks,

VTK 8.1.0.rc1 is up on the downloads site and tagged in git. Please give it
a try and report any problems that you find to us via the gitlab issue
tracker with an "8.1" milestone tag. Developers, use the same tag to let us
know of any fixes that you want integrated to the release branch in time
for 8.1.0 final in a few weeks time.

We are still gathering feedback from all 70 committers to make up the
official release notes but in the meantime here is a preview of what seem
to be the most notable changes.


In this release we’ve done more than the usual amount of deprecation and
dead code removal. Most importantly in 8.1 we’ve deprecated both the legacy
“OpenGL1” backend and our interface to Qt4. We also removed the previously
deprecated vtkInfovisParallel, vtkFiltersMatlab and
vtkFiltersStatisticsGnuR modules as well as deprecated  vtkInstantiator.
The replacement for vtkInstantiator is to use vtkObjectFactory where
applicable or an explicit list of classes. We expect that most of the newly
deprecated code paths will be removed in master in preparation for the VTK
9.0 release next spring.

The next big ticket item is progress on VTK-m - VTK’s burgeoning mechanism
for multithreaded and GPU enabled fine grain parallel processing filters.
The VTK-m project is now bundled with VTK (technically we use a git
submodule for it) and we’ve made numerous performance improvements and
added several new algorithms (vtkmExtractVOI, vtkmPolyDataNormals, and
vtkmTriangleMeshPointNormals) to it. We’ve also started the process of
transitioning the vtkSMP threaded filters (which are now deprecated) to
VTK-m based implementations.

In support of the VTK-m we’ve updated the minimum C++ compiler requirements
to be Microsoft Visual Studio 2013 or newer,  GCC 4.8.3 or newer, Clang 3.3
or newer, and Apple Clang 5.0 (from Xcode 5.0) or newer.

VTK’s python interface has some nice new capabilities. First, debug builds
of VTK can now better make use of the PYTHON_DEBUG_LIBRARY that cmake
detects. Second, in 8.1 the numpy_support.numpy_to_vtk facility will
automatically convert non-contiguous arrays to contiguous array and manage
the numpy reference in memory using a private attribute called as
_numpy_reference so that the programmer does not have to. Third, vtk’s
python wrappers have some new capabilities that make wrapped VTK resources
safer and generally more pythonc. The VTK_EXPECTS(condition) method hint
that will assert a precondition in Python before a C++ method is called,
causing Python exceptions to be raised for method calls that might
otherwise cause undefined behavior.  Two additional hints have been added
for wrapping pointers: VTK_SIZEHINT(expression) tells the wrappers to treat
a pointer as an array with a size given by 'expression', and VTK_ZEROCOPY
tells the wrappers to use Python's buffer interface.  This latter hint
conveniently allows Python buffers to be used to construct zerocopy VTK
data arrays.

On the web front vtkWeb converted its client-server communication from
using an outdated version of Autobahn WAMP to wslink - a new RPC and
publish-subscribe library using websockets, in order to support upgrades to
the ParaViewWeb classes and the Visualizer web application. For mobile
devices we've begun work on a new mobile VTKViewer app which will replace
the older KiwiViewer and use the mainline VTK library.

The VTKExamples project has gained more than 111 C++ examples since VTK
8.0. Of the C++ examples added, 73 examples from the VTK Book have been
added. We anticipate moving the rest of the VTK book and in source examples
to the VTKExamples project over the next few releases.

There is also a new SegY file format reader. This originated in Jia
Chen’s Google
Summer of Code 2015 project. The XML based “.vtm” multiblock reader has a
new load balancing scheme that distribute the load more evenly in some
situations. XDMF3 gained an parallel write functionality and support for
some of the FEnICs project’s higher order cell types. The later work came
out of Michal Habera’s Google Summer this past summer.

We’ve added support for arbitrary-order Lagrange-interpolated cells for the
following shapes: curve, tri, quad, tet, hex, wedge. See the new
vtkLagrangeXXX classes in VTK/Common/DataModel and read all about it in the
next Kitware Source to learn more. There is also additional support and bug
fixes for polyhedral cells, especially in combination with mapped
(zero-copy) grids for in-situ processing ala Catalyst.

The hypertree grid (vtkHyperTreeGrid) and its ancillary objects underwent a
complete overhaul in order to reduce memory footprint and speed up
execution time. The refactoring brings: a more compact hypertree
representation, a hierarchy of traversal objects (cursors and supercursors)
that transport the minimum amount of information required for any given
algorithm, and suite of updated and new hypertree grid filters that take
advantage of the above.

The vtkArrayCalculator changed to be able to process data arrays from any
attribute type (point, cell, field, etc) and operate on vtkGraphs and
handle more than 256 arrays. The API for specifying which data association
algorithms use changed as a part of this.

We’ve made improvements to Dual Depth Peeling and FXAA anti aliased
rendering and enabled them with several previously excluded OpenGL
implementations. We’ve also fixed a variety of volume rendering bugs and
added a means to supply custom GLSL shader codes for volume rendering. In
related news the OSPRay rendering path can now directly volume render
unstructured grid and vtkOverlappingAMR data sets. Continuing in the area
of ray traced rendering VTK has a brand new interface to ray cast surface
rendering in the vtkRenderingOptiX module which utilizes the GPU for
tracing rays. Meanwhile VTK’s OSPRay based rendering option is also now
capable of full path tracing of surface geometry. This is a big jump over
the earlier ray casting like capability and includes support for soft
shadowing area lights and arbitrary surface materials with generally bring
about global illumination and photorealistic rendering capability.



David E DeMarle
Kitware, Inc.
Principal Engineer
21 Corporate Drive
Clifton Park, NY 12065-8662
Phone: 518-881-4909
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtkusers/attachments/20171108/524feba8/attachment.html>

More information about the vtkusers mailing list