首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >空间数据可视化细节层次

空间数据可视化细节层次
EN

Stack Overflow用户
提问于 2013-04-24 15:14:56
回答 1查看 248关注 0票数 4

到目前为止,我有一个具有不同属性的三维点云数据集,我将其可视化为点,并且我希望具有基于与该集的距离的LOD。我希望能够从更少和更大的点从很远的地方有一个通用的视图,当我放大时,我希望更多的点被正确地隔开,自动显示。

有点像下面的视频,行为智慧:http://vimeo.com/61148577

我认为一种解决方案是使用自适应八叉树,但我不确定这是否是一个好的解决方案。我一直在研究具有无缝转换的分层集群,但我不确定我应该使用哪种解决方案来满足我的目标。

对于从哪里开始有什么建议和建议吗?或者是一些特定的方法?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-04-25 21:31:20

您链接的视频使用2D metaballs。当变形球聚集在一起时,它们会形成斑点,而不是更大的圆圈。你能接受吗?

在继续之前,您应该先阅读metaballs简介。只要谷歌2D metaball就可以了。

因此,希望您已经阅读了metaball阈值和衰减函数。衰减函数应该有一个半径--函数落到零的距离。

我们可以通过调整阈值和半径来实现LOD效果。基本上,在缩小时,增加半径,以便点在更大的区域上具有影响,并开始聚集在一起。此外,调整阈值,以便点密度不足的区域开始消失。

我发现了这个现有的jsfiddle 2D metaballs演示,并对其进行了修改以展示LOD:

  • 详细等级0:将单个点作为圆。(http://jsfiddle.net/TscNZ/370/)
  • LOD 1:孤立的点开始收缩,但点的群集开始形成斑点。(http://jsfiddle.net/TscNZ/374/)
  • LOD 2:孤立点消失了。斑点更少、更大。(将上面的URL更改为jsfiddle revision 377)
  • LOD3: Blobs甚至更少、更大。(将上面的URL更改为jsfiddle修订版380)

正如您在不同的jsfiddle版本中看到的那样,更改LOD只需要调整几个变量:

代码语言:javascript
复制
threshold = 1,
max_alpha = 1,
point_radius = 10,

许多metaball文章没有触及的一个关键点是:您需要使用一种约定,即只有高于阈值的值才会被认为是metaball的“内部”。然后,当缩小很远时,需要将阈值设置为高于衰减函数的峰值。这将导致孤立点完全消失,只留下可见的束。

渲染metaball本身就是一个完整的主题。这个jsfiddle演示采用了一种非常低效的暴力方式,但也有效率更高的“行军方块”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16195174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档