【问题标题】:javafx 3d performance large data setjavafx 3d性能大数据集
【发布时间】:2015-07-24 21:05:47
【问题描述】:

我有一个数据集,它折衷一百万个长方体。我使用 TriangleMesh 将其渲染为单个节点。这看起来不错,旋转很快。但我也想对它进行切片,所以我实现了代码来重新计算面并应用它们。它可以工作,但有点慢 - 不是在计算人脸索引时,而是在渲染中。

每个长方体由 12 个三角形组成

然后我尝试为每个长方体设置一个单独的节点,并将节点设置为可见/不可见。这表现太糟糕了。

有什么想法吗?要了解我在说什么,请查看

http://www.peclouds.com/node/1

【问题讨论】:

  • ps 上述网站也有一个 avi 视频,可以在该页面上下载 - 格式为 *.rar。从视频中可以看出,切片几乎是瞬间完成的。
  • 似乎软件(它是竞争对手)也使用 OpenSceneGraph

标签: javafx javafx-3d


【解决方案1】:

你知道FXyz 库吗?例如,它具有几个新的 3D 复杂形状以及复杂的纹理选项,以启用等高线图。

还可以查看Sampler,了解所有选项。

库中的一些最新(未提交)开发是ScatterMeshTetrahedraMesh

我们可以从文件中读取数据,每行都包含{x,y,z,f} 数据,并为该点 (x,y,z) 创建一个四面体,只使用 4 个三角形(4 个点和 4 个面)。我们根据f设置密度颜色。

我们可以将每个四面体添加为一个节点,并拥有一组完整的节点,这仅对少量节点有效,或者我们可以创建一个单独的网格,如您所说,通过将每个新的四面体添加到该网格中.这真的很快,我已经设法读取了数百万个数据点。

这个网格有 100 万个四面体,或 400 万个三角形:

目前我们还没有切片算法。欢迎您为它做出贡献。

【讨论】:

  • 谢谢你,何塞。我知道 Fxyz,但没有仔细研究过。您似乎证实了我的发现,即单个大网格比大量节点具有更好的性能,每个节点都有一个小网格。
  • 我也想知道点是否最好定义为正常。我的观点一旦定义就固定了,但我的脸有很多用户交互。
  • 什么样的互动?网格现在支持法线,但在 FXyz 中我们还没有使用它们(还)。
  • 简单来说(现实更复杂!),想象一个有一百万个长方体的网格,然后你想看到一些切片,例如显示所有 I = 5, 10, 15 的长方体或 j = 9、12、16
  • 切片是使用双滑块交互定义的,随着滑块的变化,它应该是平滑的....当前随着滑块的变化,我重新计算面,然后做一个 addAll。重新计算速度很快,但在 addAll 过程中会出现暂停,大概是因为它必须进行大量计算/渲染。基本上,我通过重新计算所有面来使面可见/不可见。在这个里面你可以看到里面的 3D 图片。 3D 是油气藏模型。大多数实现者使用 C++ 库,但我是 Java 人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-20
  • 2018-12-14
  • 2019-06-29
  • 1970-01-01
  • 2021-06-26
  • 2018-01-27
相关资源
最近更新 更多