现在我想渲染一个大约30FPS的大数据。数据是每帧300万到1000万的三维点云数据一点是(x,y,z,r,g,b)
使用PCL的可视化工具绘制火焰需要1秒多的时间,已经太晚了。
数据的类型和排列是好的,但是
请有人告诉我可以渲染的好库3,000,000点数据(x y z坐标和RGB), 30FPS
我不知道有哪个库可以做到这一点,但是有相当多的点云查看器可以渲染大型甚至大量的点云(> 10亿个点)。它们中的大多数都需要预处理步骤来创建多分辨率数据结构。
桌面:- CloudCompare(我最喜欢的查看器,最多可以查看40m点。有很多工具和特性。但是,对于较大的数据集,您可能需要查看其他查看器之一。
- Arena4D
- PointCloudViz(桌面版)
- 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);