30fps的大点云数据渲染查看器

时间:2015-08-28 10:26:39

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

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

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

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

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

2 个答案:

答案 0 :(得分:3)

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

桌面:

  • CloudCompare(我最喜欢的观看者,可以说是40米点。很多工具和功能。对于较大的数据集,你可能想看看其他观众之一。)
  • Arena4D
  • PointCloudViz(桌面版)

网页浏览器:

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

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

答案 1 :(得分:0)

您可以尝试我编写的this个基于OpenGL的简单点云渲染器。我已经在多达5000万个点的点云上进行了尝试,并且可以实时渲染。对于相同的数据,PCL Viewer需要5秒钟来更新框架。

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

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

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