<div dir="ltr">Hi folks,<div><br></div><div>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.</div><div><br></div><div>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.</div><div><br></div><div>/** ------------------------------------------------------------------------------</div><div><br></div><div><span id="gmail-docs-internal-guid-f63478a7-9ce3-7990-c62c-0cb5fa03222a"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">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.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">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.</span><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><br class="gmail-kix-line-break"><br class="gmail-kix-line-break"></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">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.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">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.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">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.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">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.</span></p><p dir="ltr" style="line-height:1.38;margin-top:16pt;margin-bottom:16pt"><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">There is also a new SegY file format reader. This originated in </span><span style="font-size:9.5pt;font-family:Arial;color:rgb(0,0,0);vertical-align:baseline;white-space:pre-wrap">Jia Chen’s </span><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">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.</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">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.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">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.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">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.</span></p><br><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap">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.</span></p><div><span style="font-size:9pt;font-family:Arial;color:rgb(0,0,0);background-color:transparent;vertical-align:baseline;white-space:pre-wrap"><br></span></div></span></div><div><div>------------------------------------------------------------------------------*/</div></div><div><br></div><div>enjoy!</div><div><br clear="all"><div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>David E DeMarle<br>Kitware, Inc.<br>Principal Engineer<br>21 Corporate Drive<br>Clifton Park, NY 12065-8662<br>Phone: 518-881-4909</div></div></div></div></div></div>
</div></div>