VTK8.2.0 更新说明

时间:2024-04-12 12:46:08

原文urlhttps://blog.kitware.com/vtk-8-2-0/


此版本是一个次要版本更新,旨在使VTK 9.0的新构建系统出现重大变化之前,可以为启用VTK的应用程序提供主/开发分支中的大量改进。该版本继续我们的代码库现代化的道路,通常更好地利用现代编译器功能并删除不太值得维护的遗留功能。8.2的变化包括以下几个方面。

总体变化

  • 我们已经删除了对TCL和Qt4的支持,我们已经弃用了visual studio 2013以获得更完整的c ++ 11功能支持。
  • 现在我们需要C ++ 11,删除了所有VTK_OVERRIDE,VTK_FINAL,VTK_DELETE_FUNCTION宏。
  • vtkAbstractArray获得了对运行时用户定义的*函数的支持,允许自定义分配器内存与VTK一起使用。
  • 现在不推荐使用vtkGeovis类。

PYTHON功能

  • VTK Python模块已经过重组,支持导入特定模块而无需导入所有VTK。这大大提高了进口速度。要使用它,请导入vtkmodules包而不是vtk。
  • vtkpython现在支持标准的Python命令行参数-v和-vv,可用于打印有关正在加载的模块和正在搜索的路径的信息。
  • 现在有QVTKRenderWindowInteractor的PySide2绑定。

新的和改进的过滤器

  • 对于网格质量检查,vtkCellValidator接受数据集作为输入,并向其添加与每个单元的“有效性”对应的整数单元数据。有效性字段对用于识别阻止单元格标准使用的问题的位域进行编码,识别以下内容:错误的点数,交叉边,交叉面,不连续边,非凸面和面向不正确的面。
  • vtkMultiObjectMassProperties - 添加了一个过滤器来计算多个对象的质量属性(例如,表面,体积)
  • vtkContour3DLinearGrid - 为非结构化网格添加优化的isocontour过滤器,使用线性3D单元格在非结构化网格上加速~10-20x或更高
  • vtkTrimmedExtrusionFilter - 添加了一个过滤器,用于将多边形形状拉伸到修剪曲面
  • vtkDiscreteFlyingEdgesClipper2D - 添加了一个过滤器,用于从分段的2D图像数据生成填充区域
  • vtkExtractEnclosedPoints - 一个线程化的高速版本,用于提取封闭多边形曲面内的点
  • vtkConnectedPointsFilter - 添加了一个过滤器,用于根据几何距离度量(例如,接近度,正常对齐等)和可选度量(如标量范围)从点云中提取和/或分割点
  • 在vtk中暴露了8个VTK-m滤波器,它们与纯VTK对应物共享一个非常相似的API。此外,可以针对CUDA,TBB或OpenMP运行以下过滤器:PointElevation,Histogram,Probe,NDHistogram,WarpScalar,WarpVector,CoordinateTransform和PointTransform
  • vtkSelection现在支持使用布尔表达式组合多个选择节点,并且已经修改了用于提取选择的过滤器。改进的vtkExtractSelection过滤器(以前的实现仍可用作vtkExtractSelectionLegacy)使用vtkSelector类的层次结构来支持不同类型的选择。
  • vtkExtractArraysOverTime已被弃用,并由vtkExtractSelectedArraysOverTime替换。vtkExtractSelectedArraysOverTime在内部使用vtkExtractDataArraysOverTime来提取所选元素的数组。vtkExtractDataArraysOverTime也可以直接用于从输入数据集中提取所有数组,而无需指定任何要提取的选择。
  • vtkRasterReprojectionFilter(新的vtkGeovisGDAL模块)使用GDAL在两个地理空间投影之间重新投影栅格数据。
  • 新的远程模块vtkFiltersMomentInvariants添加了三个过滤器,用于计算点数据的矩张量,执行模式检测以识别矩中的不变量,并从矩不变量执行原始数据的重建。本出版物中描述。

IO

  • 对OBJImporter进行了许多修复和改进
  • 添加了vtkFFMPEGVideoSource,可用于将视频文件解码为图像和音频数据
  • vtkAMReXParticlesReader支持从AMReX plotfiles 读取粒子数据。
  • 为CASL使用的“VERA out”格式添加新的hdf5阅读器https://www.casl.gov/vera
  • 有一个新的NumberToString类,它以序列化的ascii字符串形式维护浮点数的数值精度。
  • XML格式的更新,包括位数组和vtkInformation对象的捕获,以及用于编写某些类型数据的大量性能改进。
  • 更新vtkDataCompressor和新的vtkLZMADataCompressor,可以更好地控制用于在不同情况下优化空间与时间权衡的压缩量和类型。

渲染

  • 添加了对在Windows上运行时测试OpenGL功能以及回退到Mesa软件渲染的支持(请参阅vtkTestOpenGLVersion.h)
  • 现在可以使用GPU体积映射器修改或使用自定义着色器来调整最终渲染。通过允许通过新类(vtkOpenGLUniforms)声明和设置自定义统一变量的值,改进了vtkOpenGLGPURaycastMapper中自定义卷着色器的可用性。
  • 处理半透明渲染的默认方法现在是单通道顺序独立模拟半透明方法,其产生比先前的阿尔法混合方法更好的结果。
  • 3D字形映射器已更新,现在可以接收四个分量向量并更好地处理旋转。
  • 基于PolyData的映射器现在支持多纹理
  • 增加了对Oculus触摸控制器的支持
  • 硬件加速体积映射器现在可以为剪切区域中的体素分配特殊强度值。这可用于在剪切界面处生成平滑的表面阴影面。
  • 体积映射器现在可以直接渲染等值面,从而节省通常保留用于首次提取等值面几何的时间和内存。
  • 我们现在有一个色调映射渲染通道。这是处理具有高亮度范围的现实世界中的场景的优雅方式。

Web and Mobile

  • 通过优化带宽使用的新协议改进vtkWeb远程渲染的性能。
  • 我们已经添加了使用标准CMake工具链将VTK目标导出到Android NDK构建系统的功能
  • 更好地支持Android上的EGL。

Interaction

  • 硬件选择器拾取已完全重新设计,以便映射器在拾取时不再需要将其数据重新上载到GPU。这应该显示大型几何形状的拾取速度的巨大改进。
  • 基于渲染器的Pick方法已被重写以使用硬件选择器。
  • vtkHandleWidget获取一个新的非活动模式,当窗口小部件被禁用时,该模式使得句柄表示在屏幕上可见。这允许对句柄进行模态编辑。
  • QVTKOpenGLNativeWidget现在考虑浮点设备像素比率,当Qt的内置高DPI缩放处于活动状态且非整数设备像素比率时,窗口小部件正常工作。

文档和社区

  • 由Bill Lorensen,Andrew Maclean和VTK社区领导的转换工作中的VTK教科书现在可以在线获得LaTeX和Markdown版本。
  • 在比尔洛伦森和安德鲁麦克莱恩的带领下,VTK的例子得到了扩展。这包括将所有TCL示例转换为Python和/或C ++。
  • 我们已经开始从用户和开发人员邮件列表过渡到单一的简化现代Web界面。注册discourse.vtk.org,了解人们在谈论什么。与ITK和ParaView一样,我们希望在明年完全淘汰旧的邮件列表。

使用医疗数据集演示新的Clipped Volume Intensity体积渲染功能
VTK8.2.0 更新说明