vtk8.1.0更新说明

url:https://blog.kitware.com/vtk-8-1-0

VTK开发团队很高兴推出VTK 8.1.0。

此版本通过VTK-m继续VTK向多线程和GPU启用的细粒度并行处理过滤器发展。在VTK 8.0.0中引入的VTK-m现在与VTK捆绑在一起(技术上我们使用git子模块),我们对性能进行了改进,并添加了新的算法(vtkmExtractVOI,vtkmPolyDataNormals,vtkmTriangleMeshPointNormals)。我们也开始了将vtkSMP线程过滤器转换为基于VTK-m的实现的过程。为了支持VTK-m,我们将最低C ++编译器要求更新为Microsoft Visual Studio 2013或更新版本,GCC 4.8.3或更新版本,Clang 3.3或更新版本,Apple Clang 5.0(来自Xcode 5.0)或更新版本。

除了废弃一些vtkSMP过滤器之外,此版本还包含大量的弃用和不推荐的代码删除。弃用包括:

  • Tcl绑定
  • Qt4兼容性
  • 传统的OpenGL1后端以及紧密结合的功能,如即时模式渲染和多渲染实现的抗锯齿,景深和运动模糊效果
  • vtkHyperOctree被vtkHyperTreeGrid取代
  • vtkInstantiator
    vtkInstantiator的替换是在适用的情况下使用vtkObjectFactory,或者使用显式的类列表。

同样,我们删除了以前弃用的Infovis / Parallel,Filters / Matlab和Filters / StatisticsGnuR模块。我们预计所有新弃用的代码路径将在下一个发行版之前完全删除。

VTK的python界面有一些新功能。首先,VTK的调试版本现在可以更好地使用cmake检测到的PYTHON_DEBUG_LIBRARY。其次,在8.1中,numpy_support.numpy_to_vtk工具会自动将非连续数组转换为连续数组并管理numpy内存引用。第三,python包装的VTK类调用更安全(请参阅VTK_EXPECTS和VTK_SIZEHINT宏),并且通常更加pythonic和高效(请参阅VTK_ZEROCOPY)。

我们对VTK的构建系统进行了其他更改。特别是外部模块现在确保找到的目标正确导出。这允许外部模块具有外部模块依赖性。我们预计在下一个版本中,将从CMake最低版本开始,对VTK的CMake基础架构进行更大规模的更改。

对于基于Web的VTK应用程序,请查看最近宣布的用于客户端Web可视化的vtk.js项目。对于服务器端vtkWeb应用程序,我们已将用于客户端服务器通信的过时版本的Autobahn WAMP替换为与Python 3兼容的wslink(通过websockets)。对于移动设备,我们对VTK进行了更改以支持新的移动VTKViewer应用程序,将取代KiwiViewer。

8.1中有一些更新的文件格式。有一个新的SegY阅读器用于地球物理数据。这起源于贾晨的Google Summer of Code 2015项目。基于XML的“.vtm”多块阅读器具有新的负载平衡方案,可在某些情况下更均匀地分配负载。 XDMF3获得了并行写入功能并支持一些FEnICs项目的高阶单元类型。后来的作品出自Michal Habera的Google Summer of Code 2017项目。

核心数据模型和处理能力也得到改善。最重要的是,我们增加了对以下形状的任意阶拉格朗日插值单元格的支持:曲线,三元,四元,四元,十六进制,楔形。请参阅VTK / Common / DataModel中的新vtkLagrangeXXX类,并在下一个Kitware Source中阅读全部内容以了解更多信息。还有对多面体单元的其他支持和错误修复,尤其是与用于原位处理ala Catalyst的映射(零拷贝)网格相结合。

这里写图片描述
新的弯曲楔形单元和等值面内。

同样,hypertree网格(vtkHyperTreeGrid)及其辅助对象也经历了彻底检修,可减少内存占用并加快执行时间。重构带来:更紧凑的hypertree表示,遍历对象(游标和超类)的层次结构,用于传输任何给定算法所需的最小信息量,以及利用上述优点的更新和新的hypertree网格过滤器套件。
这里写图片描述
球体八分体的HyperTreeGrid表示。

当然渲染也在继续。外屏和无头渲染支持经过重构,可以使用OSMesa + GLX或EGL + GLX进行构建。我们对双深度剥离和FXAA反锯齿渲染进行了优化,并使它们具有几个先前排除的OpenGL实现。颜色映射(vtkColorTransferFunction)现在支持LAB CIEDE2000色彩空间。在此模式下,使用CIE Delta E 2000色彩距离度量,颜色插值将采用Lab色彩空间中的最短路径。同时,VTK拥有一个全新的界面,通过vtkRenderingOptiX模块进行光线投射表面渲染,该模块利用GPU跟踪光线。同样在射线追踪渲染领域,OSPRay后端现在能够对表面几何进行全路径追踪。路径追踪包含软阴影区域灯光,任意表面材质和全面照明,以实现照片真实感

这里写图片描述
路径跟踪在ParaView中呈现。

卷渲染也得到了关注,包括修复了标准GL2渲染路径中的各种错误(请参阅TestGPURayCastUserShader和TestGPURayCastUserShader2)。更值得注意的是,您现在也可以为GL2的卷呈现器提供自定义GLSL着色器。 OSPRay卷呈现器更接近于完全兼容本版本中对非结构化网格和vtkOverlappingAMR数据类型的直接卷呈现的初始支持。

这里写图片描述
TestGPURayCastUserShader2回归测试结果。

这些仅仅是74位作者在过去6个月内为您提供了1053次提交的选择,为您带来了VTK 8.1。当然,VTK是一个大型项目,其中大部分都未触及。 VTKExamples项目使得整个项目更加平易近人。这个项目也受到了重视。现在它已经针对初学者的每个VTK提交进行了回归测试。自VTK 8.0以来,它还增加了111个新的C ++示例。在添加的C ++示例中,添加了73个来自VTK Book的示例。我们预计在接下来的几个版本中,将VTK书的其余部分和源代码示例移到VTKExamples项目中。

我们要感谢所有带来8.1的作者,错误记者和功能请求者。下一个版本VTK 9预计将在春季发布。

猜你喜欢

转载自blog.csdn.net/yuxing55555/article/details/80664702