【问题标题】:Just how good is VTK? [closed]VTK到底有多好? [关闭]
【发布时间】:2010-11-28 13:04:48
【问题描述】:

我从开发人员那里听到了一些对 Visualization ToolKit (VTK) 的好评。但它究竟有多强大?例如,它能否处理具有数十亿网格点的整个油藏(在模拟器中)的可视化?大多数工业油藏模拟器在并行处理器上运行。我知道 VTK 支持并行处理,但是在运行油藏模拟之类的东西时,使用并行处理器的稳定性如何?有人在这么大的项目上使用过VTK吗?

Mathematica 支持一些简单的油藏模拟,但我认为它使用 Java Swing 库。那么,有没有人知道 VTK 被用于除 3DSplice 之外的强大可视化吗?另外,谁能谈谈使用 VTK 的开发时间?

【问题讨论】:

    标签: parallel-processing visualization simulation vtk


    【解决方案1】:

    VTK 用 C++ 编码,可用于 C++、Python、Tcl/Tk、Java。 Sandia(我相信包括他们的Titan 工作)、Los Alamos 和 Livermore 等实验室使用 VTK 进行可视化工作,其规模足以与您的野心相媲美(当然,这是通过大量硬件完成的支持,以及非常熟练的程序员,他们对 VTK 和项目中使用的所有其他技术非常有经验——“数十亿网格点”不是一个需要解决的项目,除非你有一个拥有如此极端技能的团队,而不是使用任何工具包)。

    我并不是说无论你如何处理它(一个你心目中雄心勃勃的可视化项目)都会很容易——但我想不出任何替代框架可以做到这一点比 VTK 更容易!-)

    【讨论】:

    • 基本上,我是一名石油工程师,但我对编程非常热情(我知道热情和熟练之间是有区别的)。我们确实拥有一支熟练的程序员团队,他们参与过开发油藏模拟器。最近,我们一直在考虑VTK。那么,开发时间呢?
    • 开发时间可能比我听说过的任何其他类似工具包都要快,但是在巨大的集群上运行十亿节点的可视化 FAST 进行微调和优化仍然感觉需要很长时间——这是一个天生的难题。我不知道有什么工具可以让你的开发比 VTK 更快,但这并不意味着你会喜欢即使使用 VTK 所涉及的工作量(那么有什么替代方案 - 什么都不做,因为它太难了? - )。
    • 也有一些缺点(根据我短暂的个人经验): * 文档可能会(很多)更好。 * 只有一个邮件列表,没有论坛。 *如果事情不正常,很难找出原因。 * API 质量一般(奇怪的名称、重复的功能、奇怪的概念)
    【解决方案2】:

    VTK 是一个非常强大的工具包,因为它提供了多种可视化算法的相当有效的实现。要了解 VTK 可以做什么,我建议您查看 ParaView。 ParaView 围绕 VTK 构建可用的应用程序,因此您可以通过将各种 VTK 组件耦合在一起来立即可视化数据。

    为了更直接地解决您的问题,VTK 中的并行处理用于加速创建可视化。这应该是稳定的,但独立于您的模拟计算。学习如何使用 VTK 需要一些时间,但是您可以购买一本书,它解释了如何使用它的许多方面。尝试使用 Python 包装是快速了解如何使用 VTK 的好方法。

    对于您的应用程序,我不确定 VTK 是否是最合适的解决方案。我建议使用 ParaView 或 Python VTK 绑定进行一些小规模实验,看看您是否可以创建合理的模拟可视化。

    【讨论】:

    • +1 供 ParaView 参考。请注意,还有VisIt 可以完成类似的工作。还需要注意的是,ParaView 和 VisIt 可视化都可以使用 Python 编写脚本。
    【解决方案3】:

    我个人对 VTK 的体验是积极的,但仅限于小型数据集。如果您有大型数据集,就像您的情况一样,它肯定会非常慢。从好的方面来说,它具有如此多的可视化模式,以至于用纯 OpenGL 重写它们是不可想象的。我不知道VTK的慢从何而来,但管道架构可能没有帮助。此外,很大程度上取决于您使用的过滤器。例如,体积图的构建速度非常慢(许多平行的透明平面)。

    我们发现一个有用的解决方案是在绘制数据集之前将其修剪到最低限度。很多时候,视觉准确性的损失可以忽略不计。您也可以尝试使用 LevelOfDetail (LOD) 过滤器,但我没有这方面的经验。

    【讨论】:

      【解决方案4】:

      定义 VTK(或任何库)有多“强大”是不可能的。这一切都取决于您的需求。这不像您可以在 VTK 上扔任何网格,增强大量硬件负载并期望它平稳运行。 VTK 不适合大型模型 - 但是有一个名为 Paraview 的库试图支持这一点。

      旁注:我们在普通笔记本电脑(不使用 VTK/Paraview)上以交互方式可视化十亿细胞模型。如何?我想这是个秘密...... :)

      【讨论】:

      • 我想赞成这个提到 ParaView,但 ParaView 是一个独立的程序,而不是一个“库”。此外,它的作用不是为 VTK 添加大数据支持。目前,我不得不因为技术上的错误而投 -1 票。
      猜你喜欢
      • 1970-01-01
      • 2012-06-18
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多