VTK 中文站
返回官方版本更新
版本更新 2026-05-20 5 分钟阅读

VTK 9.6 更新说明

VTK 9.6 官方 Release Notes 的中文整理,聚焦构建、核心、数据模型、过滤器、I/O、渲染、Python 与 WebAssembly 的关键变化。

VTK 9.6 是一次覆盖面很广的版本更新,重点集中在构建系统、核心性能、数据模型、I/O、渲染、Python 以及 WebAssembly 相关能力。对中文项目来说,最值得优先核对的是构建选项、废弃接口、并行与多线程行为、以及 Python / WASM 绑定方式的变化。

版本概览

  • 官方发布于 2026-02-09。
  • 本页内容基于 VTK 9.5.2 之后的变更。
  • 官方把更新分为 New Features、Changes、Fixes/improvements、Deprecations/Removals、Updates 和 Patch Releases。

关键变化

构建

  • 新增 VTK_USE_HDF5_THREAD_SAFETY,可以在构建时启用 HDF5 线程安全,便于在多线程环境里并发读取 HDF5 文件。
  • vtk_module_build() 新增 PLATFORM_TARGET 参数,可把平台相关的编译和链接标志自动传播给消费者。

核心

  • 新增 vtkPExecutableRunner,用于多进程场景下更精确地控制命令在哪些进程上执行。
  • vtkDataAssembly 的节点遍历做了优化,GetChild 等常见调用更快。
  • vtkObject 的 observer 管理改成了更高效的数据结构,AddObserver 和 RemoveObserver 的开销更低。
  • 大量 GetVoidPointer() 用法被替换,以减少不必要的数据复制。
  • vtkArrayDispatch、vtkDataArrayPrivate、vtkFieldData 等路径也都有明显性能提升。
  • vtkMaybeUnused 宏已移除,建议改用标准属性 [[maybe_unused]]。

数据模型

  • vtkCellValidator 的缺陷状态枚举被扩展并移动到 vtkCellStatus.h,vtkPolygon 和 vtkPolyhedron 现在能报告更多缺陷。
  • vtkArrayCalculator 现在支持任意长度向量定义语法 {x, y, z, ...}。
  • vtkDataSet::GetCellTypes 已被弃用,建议迁移到 GetDistinctCellTypes。
  • vtkUnstructuredGrid 的 cell types 改用 vtkDataArray 承载,便于使用 vtkConstantArray<unsigned char>。
  • vtkCleanPolyData、vtkStaticPointLocator、vtkSurfaceNets3D、vtkRedistributeDataSetFilter 等组件都包含修复。

cell-validator-status

过滤器

  • vtkThresholdPoints 的上下界阈值规则与 vtkThreshold 保持一致。
  • vtkImageInterpolator 在小尺寸图像上的三次插值结果得到修正。
  • 分布式 HTG 的 ghost cell 和元数据交换问题已修复。
  • vtkTableBasedClipDataSet 新增 GenerateClipPointType,并修复了重复点问题。
  • vtkMeshQuality 现在支持非线性单元的 Verdict 指标。

I/O

  • 多个 reader 现在支持通过 vtkResourceStream 读取流式数据,包括 STL、PTS、HDF、CityGML、OpenVDB、DICOM、3DS 和 OBJ 相关读取器。
  • Conduit 导出时,点数组和单元数组同名的情况会被正确区分。
  • vtkPDALReader 可以读取 LAS/LAZ 元数据中的偏移量。
  • vtkDelimitedTextWriter 新增数值记法和精度控制。
  • vtkIOSSReader 与 vtkIOSSWriter 也补齐了若干并行读写能力。

渲染

  • vtkCompositePolyDataMapper 现在可以给复合数据单独贴图。
  • PBR 渲染器加入了基于 image-based lighting 的多重散射近似。

composite-texturing

Python

  • 复合数组现在可以像普通数组一样直接配合 numpy 使用。
  • 过去通过 algs 访问的 numpy 相关算法,现在可以直接走 numpy 的常用接口。
  • VTK 的 Python wrappers 已支持 Python 3.13+ 的 free-threading 模式。

Java

  • 官方修复了 Java 相关的部分回归,涉及渲染初始化与运行时兼容性问题。

Interaction

  • vtkCameraOrientationWidget 的相机重置行为现在可以由 ShouldResetCamera 控制。
  • vtkBiDimensionalRepresentation2D 对非 XY 视图平面做了泛化处理。
  • macOS 的 timer crash、线段控件属性更新、box widget 交互都得到了修复和改进。

Annotation

  • 标量条的 VerticalTitleSeparation 现在即使在水平标量条上也会生效,标题间距更一致。
  • vtkPolarAxesActor 的文本显示也有改进。

vertical-bar horizontal-bar

Charts

  • vtkChartXY::CalculateBarPlots 现在会把 shift 和 scale 变换纳入柱宽计算。

chart-before chart-after good-chart

Core 性能图

observer-benchmark

其他重要修复

  • vtkDICOMImageReader 修复了科学计数法元数据的读取问题。
  • Win32 event loop 不再忙等,空闲时 CPU 占用明显下降。
  • vtkMapper 在处理 Below Range / Above Range 颜色时修复了浮点误差引发的映射问题。
  • vtkSSAAPass 在多视口环境中的渲染问题已修复。

WebAssembly

  • WASM 构建继续增强,覆盖 JavaScript 包装、自定义模块序列化、独立 WASM 应用和线程池控制等能力。

diverging-before diverging-after

升级建议

  1. 先在独立环境里验证构建,重点检查 CMake 选项、第三方库版本和链接结果。
  2. 跑一遍最小渲染示例,确认图表、标量条、复合数据渲染和交互组件没有回归。
  3. 如果项目使用 Python 或 WASM 绑定,优先检查依赖版本、打包脚本和导入路径。
  4. 涉及废弃接口时,先把 GetCellTypes、vtkMaybeUnused 等改法整理出来,再做整体升级。

原文链接

反馈

发现内容错误、链接失效或希望补充案例,可以提交反馈。