3dtiles之点云pnts文件详解

news2024/10/6 8:40:18

3DTiles是一种用于在WebGL环境中渲染大规模三维地理数据的规范,它允许开发者将复杂的三维数据以高效的方式传输、存储和呈现。而PNTS格式则是3DTiles规范中用于存储点云数据的格式之一。在本文中,我们将探讨3DTiles和PNTS的基本原理以及它们如何用于处理三维地理数据。

3DTiles的基本原理

3DTiles规范是由OGC(Open Geospatial Consortium)组织制定的一种用于在WebGL环境中高效地呈现大规模三维地理数据的规范。它的核心思想是将三维数据分层组织,以便在不同的层级上呈现不同的细节。这样可以在保证数据传输和渲染效率的同时,提供更好的用户体验。

具体来说,3DTiles规范将三维数据组织成一系列瓦片(Tile),每个瓦片表示一个矩形区域内的三维数据。这些瓦片按照层级(Level of Detail,简称LOD)进行划分,每个层级的瓦片包含的数据量和精度都不同。例如,在最高层级的瓦片中,每个像素都可能对应于一个三维模型中的一个面,而在最低层级的瓦片中,每个像素只对应于一个三维模型中的一个点。

为了实现高效的数据传输和渲染,3DTiles规范使用了一些特定的技术,包括:

  • 预计算:在将数据传输到客户端之前,3DTiles会预先计算出每个瓦片的几何形状、纹理、法线等信息,并将其保存为二进制格式,以便在客户端上快速加载和渲染。
  • 级别管理:3DTiles规范允许开发者灵活地设置每个瓦片的层级和精度,以便根据数据的大小和复杂度来平衡数据传输和渲染速度。
  • 瓦片可见性检测:为了进一步优化渲染速度,3DTiles规范使用了瓦片可见性检测技术,即只渲染当前视角下可见的瓦片。

PNTS格式的基本原理

PNTS是3DTiles规范中用于存储点云数据的格式之一。它基于二进制格式,并使用了一些特定的技术来实现高效的点云数据存储和传输。

具体来说,PNTS

格式包含以下内容:

  • 一个头部(Header)部分,用于描述点云数据的基本信息,如点云的数量、坐标系、数据类型等。
  • 一个点云数据(Point Data)部分,用于存储点云的坐标信息、颜色信息等。

PNTS格式的主要特点是高效、紧凑和可扩展。与其他点云数据格式相比,它的数据存储和传输效率更高,可以减少网络传输的时间和带宽消耗。同时,它还可以支持更多种类的点云数据,包括有颜色信息、纹理信息、法线信息等。

3DTiles中使用PNTS格式的优势

在3DTiles规范中,使用PNTS格式存储点云数据具有以下优势:

  • 高效:由于PNTS格式采用了二进制格式存储数据,因此可以大大减少数据传输的时间和带宽消耗。此外,PNTS格式还可以使用压缩算法,进一步减小数据的大小。
  • 紧凑:PNTS格式使用了紧凑的数据结构,可以将点云数据存储在较小的空间中,从而节省存储空间和带宽。
  • 可扩展:PNTS格式可以支持更多种类的点云数据,包括有颜色信息、纹理信息、法线信息等。这使得3DTiles可以处理更复杂的三维地理数据,提供更好的用户体验。

此外,3DTiles还可以与其他数据格式和技术进行结合,如B3DM、GLTF、CesiumJS等,以实现更多的功能和效果。

结论

3DTiles和PNTS是用于处理大规模三维地理数据的重要技术。它们采用了分层组织、预计算、瓦片可见性检测等技术,以实现高效的数据传输和渲染。在其中,PNTS格式用于存储点云数据,具有高效、紧凑、可扩展等优点,可以为3DTiles提供更好的处理能力。未来,这些技术将继续发展,为处理更复杂的三维地理数据提供更多的可能性。

pnts二进制数据编写规范

二进制数据的的Layout

其中pnts的二进制文件长度必须与8字节对齐。

 

pnts二进制文件中的Feature Table与Batch Table 也需满足自己的对齐规范。

其中 Feature Table 总长度也需满足8 字节对齐规范

其中 Batch Table 总长度也需满足8 字节对齐规范

 

pnts的格式介绍官方地址:

3d-tiles/README.md at main · CesiumGS/3d-tiles · GitHub

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/455458.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

集成学习(Ensembles)

Ensembles 前言EnsemblesAveraging,StackingWhy does averaging work?如何理解:In practice errors won’t be completely independent due to noise in the labels Random ForestsDoes averaging work if you use trees with the same parameters?Bootstrap Samp…

【AgentGPT】网页版的 Auto-GPT,让 AI 成为我们的生产力工具

在上一篇文章笔者分享了 Auto-GPT 的安装&使用,不过因为操作相对繁琐,可能会导致许多想使用工具的人卡在环境的设定上。 所以这边再介绍另一款无需安装,可直接使用的工具“AgentGPT”;他的操作超级简单,只要设定好目标(Goal),一键发送即可! 大纲 ▋ 如何免费使用 A…

【C++】计算类的大小

目录 简介计算类的大小场景1:空类场景2场景3:含有虚函数场景4:继承场景5:存在字节对齐的情况 总结结语 简介 Hello! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~ …

Linux多媒体子系统02:V4L2核心框架分析(部分)

目录 1 V4L2框架结构概述 1.1 imx8视频输入通路硬件结构 1.2 V4L2设备节点观察 1.3 dts配置观察 1.4 probe函数观察 1.4.1 函数功能简介 1.4.2 各模块probe函数分析 1.5 V4L2框架结构图示 2 设备管理机制 2.1 v4l2_device结构体相关 2.1.1 v4l2_device结构体 2.1.2…

15.Java多线程

目录 1. Java基本介绍 2. JDK下载安装及其环境配置 3. 一个简单的java程序 4. Eclipse基本使用、数据类型、运算符 5. 控制语句(if、switch、for、while、foreach) 6. Java数组 7. Java字符串对象(String|StringBuffer|StringBuilder|StringJoiner…

教你如何免费使用ChatGPT 4?(国内可以直接访问,不用魔法)

目录 一. 内容介绍 二. 功能介绍 三. 优势 四. 版本比较 五. 国内试用方法 内容介绍: ChatGPT 4是由OpenAI开发的最新一代大型语言模型,其采用了GPT-3.5的技术架构,是目前全球最强大的通用AI模型之一。ChatGPT 4拥有极高的语言处理能力和…

SD卡恢复怎么做?内存卡数据恢复,3个方法!

案例:sd卡怎么恢复? 【我的sd卡用了快一年了,里面存储了很多非常重要的文件,但不知道为什么我今天将它插入电脑后,很多文件都无法显示了,大家有什么好的方法可以恢复sd卡吗?感谢回答&#xff0…

【翻译一下官方文档】之uniapp的导航条设置

目录 uni.setNavigationBarTitle(OBJECT) uni.setNavigationBarColor(OBJECT) uni.hideHomeButton(OBJECT) uni.setNavigationBarTitle(OBJECT) 动态设置当前页面的标题。 OBJECT参数说明 参数类型必填说明titleString是页面标题successFunction否接口调用成功的回调函数fai…

安虚拟机详细教程 VMware虚拟机与主机之间不能复制粘贴及拖拽问题

VMware虚拟机中安装Ubuntu18.04(linux发行版)【超详细图文教程】_vmware安装ubuntu18.04__7270的博客-CSDN博客 1. 查看vmware Tools是否安装 打开虚拟机 ,点击上方导航栏 ‘虚拟机’ 查看VMware Tools是否安装,如果未安装&#…

Linux和shell命令第一节课

windows开发 linux服务 区块链, 稳定,安全,可移植性,低资源消耗,开源软件---windows付费 linux就是操作系统,网络服务,移动设备,嵌入式系统,计算器服务器 除个人桌面…

Sentinel:服务限流

文章目录 创建工程测试工程流控熔断热点授权规则系统规则SentinelResource 配置持久化执行流程 创建工程测试工程 1.导入依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><v…

开放原子训练营第三期:RT-Thread 学习有感

介绍 前几天有幸收到C站的训练营学习邀请&#xff0c;了解到这两天即将举行的开放原子 RTT 训练营。博主算是一名嵌入式方向的小白&#xff0c;主要还是在裸机上进行开发&#xff0c;但对嵌入式的操作系统和实时系统很感兴趣。在这次学习训练营中借助一些学习示例&#xff0c;…

【Linux】 1.2基本指令-part 2

文章目录 07. man指令08.cp指令(copy)&#xff08;重要&#xff09;09.mv指令(move)&#xff08;重要&#xff09;10.cat指令- 补充&#xff1a;echo 与 >11.more指令12.less指令&#xff08;重要&#xff09;13.head指令14.tail指令- 补充&#xff1a;管道 07. man指令 ma…

CV不存在了?体验用Segment Anything Meta分割清明上河图

目录 1 Facebook抠图神器2 本地版SAM配置3 Web版SAM体验4 总结 1 Facebook抠图神器 在图像处理与计算机视觉领域&#xff0c;图像分割(image segmentation)是在像素级别将一个完整图像划分为若干具有特定语义区域(region)或对象(object)的过程。每个分割区域是一系列拥有相似特…

IJKPLAYER源码分析-常用API

前言 本文简要介绍IJKPLAYER的几个常用API&#xff0c;以API使用的角度&#xff0c;来审视其内部运作原理。这里以iOS端直播API调用切入。 调用流程 init 创建播放器实例后&#xff0c;会先调用init方法进行初始化&#xff1a; - (IJKFFMediaPlayer *)init {self [super ini…

《深入浅出Embedding》随笔

ChatGPT的核心运行机制或许是Transformer&#xff0c; ChatGPT的核心数据机制或许就是嵌入&#xff08;Embedding&#xff09;了。什么是Embedding呢&#xff1f;了解Embedding可以为我们的软件研发工作带来哪些帮助呢&#xff1f;鉴于此&#xff0c;老码农阅读了《深入浅出Emb…

前端切图仔入门Docker,三分钟上线自己的博客平台

依稀记得2022年趁某平台优惠买了台云服务器&#xff0c;周未准备安装MySQL数据库&#xff0c;两天时间卡在MySQL环境配置上&#xff0c;实在是折磨一气之下把服务器给退了。 要是我早一点学会Docker&#xff0c;我的博客估计已上线一年啦&#xff01;前端切图仔学会Docker&…

AI魔法秀:D-ID助你打造视频虚拟数字人

随着ChatGPT的各种玩法&#xff0c;写文章、做PPT、编程、修bug等&#xff0c;大家都玩的不亦说乎&#xff0c;可以说真的给家人们提升的效率很高&#xff0c;最近个人尝试着制作一个虚拟数字人&#xff0c;也是一个玩法&#xff0c;可以帮助很多中小企业做企业文化宣讲或者是产…

闲谈【Stable-Diffusion WEBUI】的插件:美不美?交给AI打分

文章目录 &#xff08;零&#xff09;前言&#xff08;一&#xff09;咖啡店艺术评价&#xff08;Cafe Aesthetic&#xff09; &#xff08;零&#xff09;前言 本篇主要提到了WEBUI的Cafe Aesthetic插件&#xff0c;这是一个相对独立的插件&#xff0c;单独标签页&#xff0c;…

周杰伦代言的蕉下,3年半广告宣传费超10亿,全靠营销?

五一假期将至&#xff0c;各地即将迎来旅游小热潮&#xff0c;不少游客也开始为自己的出行准备攻略。随着露营、徒步等城市户外运动的兴起&#xff0c;防晒理念“再度升温”&#xff0c;靠卖小黑伞起家的蕉下瞄准年轻世代消费者&#xff0c;又在疯狂收割“防晒焦虑”。 去年4月…