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

large point cloud data rendering viewer at 30fps

本文关键字:30fps 数据      更新时间:2023-10-16

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

使用PCL的可视化工具绘制火焰需要1秒多的时间,已经太晚了。

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

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

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

桌面:

  • CloudCompare(我最喜欢的查看器,最多可以查看40m点。有很多工具和特性。但是,对于较大的数据集,您可能需要查看其他查看器之一。
  • Arena4D
  • PointCloudViz(桌面版)
Web浏览器:

  • Potree(查看展示,CA13示例有170亿个点)
  • Arena4D点服务器(从Arena4D服务器流点到potree web客户端)
  • PointCloudViz (Server and Web Client)
  • Pointscene(上传和显示点云的web服务)
  • NewSpin(上传和显示点云的web服务)
  • 3DHop(主要用于网格但也可以渲染点云)
  • 塑料。我和灰狗。不确定这个的状态。有一些有希望的发展。

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

你可以试试我写的这个简单的基于OpenGL的点云渲染器。我已经在多达50万个点的点云上尝试了它,并且它可以实时渲染。对于相同的数据,PCL Viewer需要5秒来更新帧。

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

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

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