Potree:大规模点云渲染

Potree是一个开源的WebGL大规模点云渲染器,能处理Billion级别点云数据。它解决了内存限制、实时渲染和网络传输速度等问题,采用Octree数据结构,结合Poisson-Disk Subsampling优化,实现按需加载和高效渲染。Potree构建算法包括点云数据分块存储,使用MNO的改进版,确保点间隔最小,同时将索引文件分割以加速加载。
摘要由CSDN通过智能技术生成

前言

Potree 是基于 WebGL 的开源大规模点云渲染器,其由维也纳工业大学计算机图形与算法研究中心(Institute of Computer Graphics and Algorithms, TU Wien)开发。官网点击这里:Potree
根据相关论文以及展示的介绍,其支持 Billion 级别点云数据的渲染,一个复杂场景渲染示例如下图所示:
CA13

点云数据中本身仅仅包含多个点数据,对于较小规模的点云数据,只需要依次使用面或者点等方式将其全部渲染出来。但是面对较大数据量的点云,就需要考虑许多随之而来的问题:

  • 内存限制:以基于 V8 引擎为例,32 位机器可使用内存约为 0.7 GB,64 位机器可使用内存约为 1.4 GB。而渲染完整的 1 Billion 无 RGB 信息的点云数据就需要超过 22 GB 的内存进行存储(对于 JavaScript 仅有 double 数据,其计算为每个点需要 XYZ 三个点,即存储每个点需要 3 × 8 个 Byte 的内存,1 Billion 点云约为 22.35 GB)。因此,必须将点云数据进行分割,从而按需渲染以减少内存使用量;
  • 实时渲染需求:对于点云渲染的应用场景,往往并不仅仅只需要输出渲染后的可视化结果,而是需要满足基于点云渲染后的具体应用需求,例如游戏或者标注工具等。这对于点云渲染带来了实时性的需求,因此必须对巨大规模的点云数据采取一定的处理以减少 CPU 以及 GPU 的计算压力;
  • 网络传输速度:B/S 架构下由于点云资源需要通过网络进行传输,如果直接传输完整的点云数据,则在渲染计算开始前,用户需要花费大量的等待时间。这一点对于用户体验而言也同样是必须解决的痛点。

以上所述的问题需要对于点云渲染的各个阶段采取一定的措施,包括:数据预处理、数据加载、渲染计算等,但是归根结底,其本质就在于给出高效的点云数据结构

数据结构

在正式介绍 Potree 的数据结构之前,首先对于铺垫产生的这一数据结构的前述研究进行一个简单的介绍。
与大多

  • 21
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值