【问题标题】:large point cloud data rendering viewer at 30fps30fps 的大型点云数据渲染查看器
【发布时间】:2015-08-28 10:26:38
【问题描述】:

现在我想以大约 30FPS 的速度渲染大数据。 数据是一帧300万到1000万的三维点云数据 一点是 (x,y,z,r,g,b)

使用PCL的Visualizer,绘制1Flame需要1秒多,为时已晚。

数据的类型和排列都很好,但是,

请有人告诉我可以渲染的好库 3,000,000 点数据(x y z 坐标和 RGB),30FPS。

【问题讨论】:

  • 3M 可见点?这可能不会发生在低/中端硬件上。否则,任何带有某种剔除的渲染器都应该能够做到这一点,例如OpenScenegraph。

标签: c++ point-cloud-library point-clouds opengl-4


【解决方案1】:

我不知道有哪个库可以做到这一点,但是有很多点云查看器可以渲染大型甚至大量点云(>10 亿点)。 它们中的大多数都需要一个预处理步骤来创建多分辨率数据结构。

桌面:

  • CloudCompare(我最喜欢的查看器,最多可以查看 40m 点。许多工具和功能。不过,对于较大的数据集,您可能需要查看其他查看器之一。)
  • Arena4D
  • PointCloudViz(桌面版)

网络浏览器:

  • Potree(查看展示,CA13 示例有 170 亿点)
  • Arena4D Point Server(将点从 Arena4D 服务器流式传输到 Potree Web 客户端)
  • PointCloudViz(服务器和 Web 客户端)
  • Pointscene(用于上传和显示点云的网络服务)
  • NewSpin(用于上传和显示点云的网络服务)
  • 3DHop(主要用于网格,但也可以渲染点云)
  • Plas.ioGreyhound。不确定这个的状态。取得了一些有希望的进展。

如果您想自己渲染非常大的点云,则必须使用某种多分辨率结构。您可以尝试从 potree 加载多分辨率八叉树,它将每个节点存储在一个文件中,或者从 3DHop 加载多分辨率文件格式。

【讨论】:

    【解决方案2】:

    您可以尝试this 我编写的基于 OpenGL 的简单点云渲染器。我已经在具有多达 50M 点的点云上进行了尝试,它可以实时渲染。对于相同的数据,PCL Viewer 需要 5 秒来更新帧。

    在 main.cpp 中,您将找到如何格式化位置和颜色数据的示例。

    如果您的硬件支持 OpenGL 4,您可以在提供的着色器中将版本设置为 400,并在 graphics.cpp 中取消注释这些行

    //  glutInitContextVersion(4, 0);
    //  glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
    //  glutInitContextProfile(GLUT_CORE_PROFILE);
    

    【讨论】:

      猜你喜欢
      • 2021-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多