npm 包 @dhigroup/vtk.js-fork 使用教程

阅读时长 9 分钟读完

介绍

vtk.js是一个基于WebGL的3D可视化工具,可用于在网页上展示各种3D图形数据。而@dhigroup/vtk.js-fork是一个基于vtk.js的扩展,用于实现更加丰富的可视化功能和优化性能。

安装和使用

安装

使用npm进行安装:

基础用法

首先,我们需要创建一个画布:

然后在JavaScript中引入@dhigroup/vtk.js-fork模块,创建渲染器,并配置好相机、场景,最后将绘制好的结构体放入渲染器中:

-- -------------------- ---- -------
------ --- ---- ---------------------
------ --------------- ---- ---------------------------------------------

------ ------------------------- ---- --------------------------------------------------------------

------ --------------- ---- ----------------------------------------------
------ --------- ---- ---------------------------------------
------ -------- ---- --------------------------------------

----- ------------ - ------------------------------
------------------------------
--------------------------
------------------------------------
----------------------------------

----- ------ - ------------------------
--------------------------------------------------------

----- ----- - -----------------------
------------------------

----- -------- - -------------------------------------

-------------------------
-----------------------

至此,我们已经可以在页面上展示一个简单的3D球体,接下来,我们将介绍更多的绘制功能和优化性能的方法。

更多绘制功能

绘制网格模型

我们可以使用vtk.js提供的模型、映射器、演员等组件绘制网格模型,只需加载我们需要展示的网格模型文件,即可绘制出想要的3D场景。

-- -------------------- ---- -------
------ ------------ ---- -----------------------------------

----- ------ - ---------------------------
-------------------------------- -- -
  ----- ---------- - -----------------------
  ----- ------ - ------------------------
  --------------------------------
  ----- ----- - -----------------------
  ------------------------

  -------------------------
  -----------------------
---

绘制点云

相比绘制网格模型,绘制点云需要更小的空间和渲染资源,并且具有更高的显示效率。我们可以通过vtk.js提供的vtkPoints、vtkPolyData等组件绘制点云,具体实现过程如下:

-- -------------------- ---- -------
------ ----------------- ---- ------------------------------------------------
------ ---------------- ---- ----------------------------------------------
------ ---------------- ---- ------------------------------------------------

----- ------------ - --------------------------------

--- ---- - - -- - - --------- ---- -
  ----- - - ------ - - - ---
  ----- - - ------ - - - ---
  ----- - - ------ - - - ---

  ----- ----- - --- ---------
  -------- - --
  -------- - --
  -------- - --
  -----------------------------------------------------
-

----------------------
----- ------ - ------------------------------
  ------
  ------------------------ ------
  -------------------------- ------
  --------------- ------
  ----------- ---------
  ----------------- ---------
  ---------- ------------------------------------
---

------------------------------------------------------

绘制多标量场

当我们需要在同一个渲染中展示多个标量场时,可以通过将传入的标量字段以向量的方式组合,再绑定到数据解析器中实现:

-- -------------------- ---- -------
------ -------------- ---- --------------------------------------------
------ --------- ---- ---------------------------------------
------ -------- ---- --------------------------------------
------ --------------- ---- ----------------------------------------------

----- ----------- - -----------------------------
---------------------------

----- ------------ - ------------------------------
------------------------------
--------------------------
------------------------------------
----------------------------------

----- ------ - ------------------------
--------------------------------------------------------
-----------------------------------------------------
-----------------------------------

----- ----- - -----------------------
------------------------

-------------------------
-----------------------

优化性能

当3D展示场景比较复杂时,往往需要付出昂贵的计算资源代价。以下是优化性能的一些技巧。

LodPipeline

LodPipeline是一个基于LOD技术的流水线,它可以控制数据流向的不同阈值,从而实现对LOD加载阈值的控制。

-- -------------------- ---- -------
------ -------------- ---- ----------------------------------------------------
------ --------- ---- ---------------------------------------
------ -------- ---- --------------------------------------
------ --------------- ---- ----------------------------------------------

----- ------------ - ------------------------------
------------------------------
--------------------------
------------------------------------
----------------------------------

----- ------ - ------------------------
--------------------------------------------------------

----- ----- - -----------------------
------------------------

----- -------- - -----------------------------

----------------------------------------------------
---------------------------

-------------------------
-----------------------

使用Tensor Core

当使用vtk.js渲染比较大的数据时,可以利用Tensor Core进行分片处理。Tensor Core是NVIDIA专门为深度学习而设计的计算单元,其矩阵计算能力极大,可以胜任vtk.js中当代渲染计算需求。

-- -------------------- ---- -------
------ ------------------- ---- --------------------------------------------------------

----- ------ - ----------------------------------
--------------------------------

----- ----- - -----------------------
------------------------

-------------------------
-----------------------

结束语

@dhigroup/vtk.js-fork是一个功能丰富的基于WebGL的3D可视化工具,拥有非常方便的API,并且提供了多种优化性能的技巧,可以帮助开发者更加便捷地实现3D可视化任务。更多详细内容可以参考其官方文档。

示例代码可见Github

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60065f81238a385564ab6b7a

纠错
反馈