vtkjs介绍

VTK 是一个用于图像处理、3D 图形、体绘制和可视化的开源软件系统。VTK 包括许多高级算法(例如,表面重建、隐式建模、抽取)和渲染技术(例如,硬件加速体积渲染、LOD 控制)。JavaScript 实现仍然是实际 C++ 库的子集,但将努力将原生 VTK 代码轻松移植或编译到 WebAssembly 中,以更好地融合这两个世界。vtk.js 是用纯 JavaScript (ES6) 对 VTK 的真正重写。因此,并非所有内容都被重写。

VTK 起源于教科书《The Visualization Toolkit, an Object-Oriented Approach to 3D Graphics》,最初由 Prentice Hall 出版,现由 Kitware, Inc. 出版(第三版 ISBN 1-930934-07-6)。VTK 已经发展(自 1994 年首次发布以来)成为商业、学术和研究社区的全球用户群。

vtk.js 旨在成为 VTK 的子集,并使用 WebGL (+WebGPU) 为几何和体积渲染提供 3D 渲染

vtk.js 是为 Web 上的科学可视化制作的渲染库。它采用 VTK 结构和专业知识,为您的浏览器带来高性能渲染。

与 VTK/C++ 有什么区别?

VTK.js 是使用纯 JavaScript (ES6) 对 VTK/C++ 的完全重写。到目前为止,重写的重点是 ImageData 和 PolyData 的渲染管道、管道基础设施和常用的读取器(obj、stl、vtp、vti)。还提供了一些过滤器作为演示。我们的目标不是让 vtk.js 提供与 VTK/C++ 中可用的相同的过滤器集,但 vtk.js 确实提供了定义管道和过滤器所需的基础设施。

您可以将一些 VTK/C++ 编译到 WebAssembly 中,并使它们能够与 vtk.js 交互。通过这样的交互,您可以选择需要从 VTK 中提取的内容,并在您的 Web 应用程序中启用它。VTK/C++ WebAssembly 甚至可以用于渲染,示例可以在VTK 存储库中找到。此外, itk.js(它是通过 WebAssembly 实现的 ITK)还为多个图像过滤器和数据读取器提供了经过验证的实现。但是,在访问 VTK 或 ITK WebAssembly 网页时,必须下载 WebAssembly 文件的大小方面的一些额外费用;我们仍然需要做一些工作来简化 vtk.js + VTK WebAssembly 的集成。

如果你想留在纯 JavaScript 领域,那么 vtk.js 可能是你的理想解决方案。

除了 vtk.js 的渲染能力之外,该库还提供帮助类来连接到远程 VTK/ParaView 服务器,以通过从服务器到客户端,只涉及在客户端进行渲染。

使用 vtk.js

要求

一般来说,VTK 尽可能地便携。下面的具体配置已知可以工作并经过测试。

vtk.js 支持以下开发环境:

  • 节点 12+
  • NPM 6+

我们使用@babel/preset-env和默认的浏览器 target集。但是,当从源代码构建时,可以对其进行调整以支持任何提供 WebGL 的浏览器。

你可能感兴趣的:(js,前端,js)