理念建议:创建交互式3D点密度贴图

时间:2013-08-17 12:17:42

标签: 3d compression webgl hierarchical-data vertex-buffer

我提出的任何问题和我提出的问题都与我个人项目的想法有关。

我想尝试使用WebGL在浏览器中创建3D和交互式dot density map。从我的背景来看,这对我来说是全新的,但我想我认为这是我可以管理的。

我的问题围绕着项目的组成部分,特别是你对我认为需要的看法。需要生成的最大点数 400万,因为这将是所有点的最远视图。

开始:

  1. 我假设最有效的渲染方式是 使用顶点缓冲对象?如果是这样,这是否适用于 用交互操纵*?

  2. 对于这么多点,我相信分层空间划分 将需要结构,倾向于八叉树(作为高度数据 也会被使用)。这是一个不错的选择吗?记忆会怎样 在需要显示所有积分时进行管理?

  3. 如果存储了400万个点的 id,x,y,z 数据,我就是 假设这是一个大约400-600MB的CSV文件,是 有没有办法让这个合理的大小发送过来 互联网?压缩算法真的那么好吗?

  4. 我真的不需要每个桌面和移动设备都可以运行它,但我也不想将其功能限制在他在SLI中运行Titan的实验室中的那个天才。我需要它是一个合理的权力猪。

    * interactive:将数据从一个点动画到另一个点,用户可以刷点(过滤)点并找到有关这些点的更多信息,更改点颜色等。

2 个答案:

答案 0 :(得分:1)

  倾向于需要分层空间分区结构   朝向八叉树(也将使用高度数据)。这是好事   选择?

空格分区绝对是查询点的好主意。

  

如果要存储400万点的id,x,y,z数据,我就是   假设这将是一个大约400-600MB的CSV文件

如果你有400万个点和4个4字节的组件,那么数据大小约为64 MB。这可以通过现代的cpu / gpu进行管理。

  

有没有办法让这个合理的大小发送过来   互联网?压缩算法真的那么好吗?

我认为带宽是主要问题而不是尺寸。

您只能发送和显示可见的点。如果一次可见多个点,则可以通过在层次结构中将最近点组合在一起来过滤它们。 点应该表现出高频率和滤波,+可能改变亮度,应该给出感知上平滑的结果。

此类概念类似于texture clipmapsgeometry clipmaps

答案 1 :(得分:0)

数据处理:听起来您可以使用OctoMap框架。众所周知,非常有效地处理非常大的3D点云。它在内部使用八叉树,并且不会默认存储点数,而是每个盒子(节点)的占用率。 但是,扩展和在节点中存储自定义信息(如原始点)甚至在本地节点(example)中模拟点分布都非常容易。

流媒体:如果您实施自己的"<<"用于将树读入和写入流的操作符,而不是通过套接字将其轻松地流式传输到Web浏览器。

可视化:您实际上可以使用任何WebGL-JavaScript框架。目前我可以建议CubeVR