倾斜摄影OSGB转换为3DTiles

article/2025/11/7 1:40:51

倾斜摄影OSGB转换为3DTiles

情深不寿,慧极必伤。谦谦君子,温润如玉。

3DTiles validator

官方提供的3DTiles检验工具及相关工具箱。
在这里插入图片描述

feature table binary must be aligned to an 8-byte boundary

时代变迁,3DTiles b3dm 字节对齐由以前的4个字节变为8个字节。

如下所示:在生成b3dm需要首先进行字节对齐。

/*** Generates a new Buffer representing a b3dm asset.** @param {Buffer} glbBuffer A buffer containing a binary glTF asset.* @param {Object} [featureTableJson] The feature table JSON.* @param {Buffer} [featureTableBinary] The feature table binary.* @param {Object} [batchTableJson] The batch table JSON.* @param {Buffer} [batchTableBinary] The batch table binary.* @returns {Buffer} Buffer representing the b3dm asset.*/
function glbToB3dm(glbBuffer, featureTableJson, featureTableBinary, batchTableJson, batchTableBinary) {if (!defined(glbBuffer)) {throw new DeveloperError('glbBuffer is not defined.');}var headerByteLength = 28;var featureTableJsonBuffer = getJsonBufferPadded(featureTableJson, headerByteLength);var featureTableBinaryBuffer = getBufferPadded(featureTableBinary);var batchTableJsonBuffer = getJsonBufferPadded(batchTableJson);var batchTableBinaryBuffer = getBufferPadded(batchTableBinary);var byteLength = headerByteLength + featureTableJsonBuffer.length + featureTableBinaryBuffer.length + batchTableJsonBuffer.length + batchTableBinaryBuffer.length + glbBuffer.length;var header = Buffer.alloc(headerByteLength);header.write('b3dm', 0);                                    // magicheader.writeUInt32LE(1, 4);                                 // versionheader.writeUInt32LE(byteLength, 8);                        // byteLength - length of entire tile, including header, in bytesheader.writeUInt32LE(featureTableJsonBuffer.length, 12);    // featureTableJSONByteLength - length of feature table JSON section in bytes.header.writeUInt32LE(featureTableBinaryBuffer.length, 16);  // featureTableBinaryByteLength - length of feature table binary section in bytes.header.writeUInt32LE(batchTableJsonBuffer.length, 20);      // batchTableJSONByteLength - length of batch table JSON section in bytes. (0 for basic, no batches)header.writeUInt32LE(batchTableBinaryBuffer.length, 24);    // batchTableBinaryByteLength - length of batch table binary section in bytes. (0 for basic, no batches)return Buffer.concat([header, featureTableJsonBuffer, featureTableBinaryBuffer, batchTableJsonBuffer, batchTableBinaryBuffer, glbBuffer]);
}

字节对齐函数:getBufferPadded

/*** Pad the buffer to the next 8-byte boundary to ensure proper alignment for the section that follows.* Padding is not required by the 3D Tiles spec but is important when using Typed Arrays in JavaScript.** @param {Buffer} buffer The buffer.* @param {Number} [byteOffset=0] The byte offset on which the buffer starts.* @returns {Buffer} The padded buffer.** @private*/
function getBufferPadded(buffer, byteOffset) {if (!defined(buffer)) {return Buffer.alloc(0);}byteOffset = defaultValue(byteOffset, 0);var boundary = 8;var byteLength = buffer.length;var remainder = (byteOffset + byteLength) % boundary;var padding = (remainder === 0) ? 0 : boundary - remainder;var emptyBuffer = Buffer.alloc(padding);return Buffer.concat([buffer, emptyBuffer]);
}

3DTiles

https://github.com/fanvanzh/3dtiles.git

号称:

The fastest tools for 3dtiles convert in the world!

简单使用:

3dtile.exe -f osgb -i E:\osgb_path -o E:\out_path

由于年代久远,生成的b3dm是以4字节对齐的。故,简单修改一下,就可通过3DTiles validator的校验。
在这里插入图片描述

测试

20多G的数据,耗时3000s。
在这里插入图片描述

osgb转换为3dtiles

参考

1、3DTiles for UE4
2、3DTiles Validator


http://chatgpt.dhexx.cn/article/EKHGbQPL.shtml

相关文章

OSG 读取OSGB倾斜数据

OSG 读取OSGB倾斜数据 OSGB数据是一个四叉树结构&#xff0c;本文测试使用OSG加载OSGB倾斜摄影测量数据。 示例数据 Code 1、遍历所有osgb数据文件生成空间索引 2、通过建立的空间索引加载数据 #include <iostream> #include <string> #include <filesystem…

osgb加载

背景 三维引擎 本文要介绍的three.js和cesium.js是web端三维引擎&#xff0c;基于WebGL开发的&#xff0c;WebGL又是OpenGL ES的B端API封装集&#xff0c;openGL ES是 openGL的一个子集&#xff0c;OpenGL是 Open Graphics Library 是个定义了一个跨编程语言、跨平台的编程接口…

实景三维的基石-osgb

前言 2022年2月24号&#xff0c;自然资源部办公厅印发《关于全面推进实景三维中国建设的通知》。 其中我们可以发现在城市级实景三维建设中提出了倾斜摄影影像&#xff0c;描述如下&#xff1a; 《二是城市级实景三维建设。国家层面将整合省级行政区域基础地理实体数据&#xf…

倾斜摄影三维模型OSGB格式简化(压缩、优化)

倾斜摄影三维模型OSGB格式简化&#xff08;压缩、优化&#xff09; 文章目录 倾斜摄影三维模型OSGB格式简化&#xff08;压缩、优化&#xff09;前言一、OSGB格式二、当前osgb简化/压缩的主要方式1.第一种 输出osgb格式2.第二种 输出其他格式 三、我的理解**有兴趣的同学可以加…

倾斜摄影测量数据osgb格式加载优化(以supermap为例)

一、OSGB格式介绍 1. osgb osgb全称为Open Scene Gragh Binary,是OSG引擎的一种支持三维数据的二进制存储格式。 2. cc软件生成osgb数据目录结构 其中metadata.xml为元数据文件&#xff0c;含倾斜摄影测量数据的坐标及原点等信息。Data为倾斜摄影测量数据的存储文件夹&…

OSGB格式解析

主要介绍倾斜摄影数据OSGB二进制数据的解析&#xff0c;首先简单介绍一下OpenSceneGraph相关技术&#xff0c;并介绍倾斜摄影数据的组织结构&#xff0c;着重分析OSGB格式的相关字段&#xff0c;最后逐字节对OSGB数据进行解析并通过OpenSceneGraph对数据进行可视化&#xff0c;…

如何介绍自己测试过的项目

测试人员在找工作的过程中&#xff0c;通常有一个问题是很难绕开的。就是要如何向别人介绍自己之前做过的项目。下面我们就这个问题简单的做一些分析。 要解决这个问题&#xff0c;大体上可以分为如下几个步骤&#xff1a; 1、对项目进行基本介绍 2、说明自己负责测试的模块…

分享一份接口测试项目(非常值得练手)

之前跟大家分享了一份适合练手的接口测试实战项目&#xff0c;算是一份接口测试的入门级项目。但这个项目有诸多局限&#xff0c;比如部署不便&#xff0c;接口有限&#xff0c;没有鉴权等等。 因此&#xff0c;趁着周末&#xff0c;小编又给大家找了一个接口测试项目&#xf…

1.性能测试项目实战

怎么开展性能测试 什么时候开始性能测试 1.先确定需不需要做 客户有明确的性能需求当没有明确需求时 如果市场用户访问量不大&#xff0c;时间允许就做一个基准测试&#xff0c;时间不允许就不做市场用户量比较大&#xff0c;需要先跟产品&#xff0c;需求人员确定好性能需求…

金融外包测试项目经验分享

金融项目外包 测试管理 经验 软件测试 首先确定项目外包测试的核心问题—对项目外包测试的定位。 项目外包测试是一种服务性工作&#xff0c;所以把服务放在第一位是做任何事情的出发点。作为项目经理&#xff0c;一定要把这种思想告诉给我们的测试团队成员&#xff0c;树立服务…

测试项目中的风险管理

&#x1f60f;作者简介&#xff1a;博主是一位测试管理者&#xff0c;同时也是一名对外企业兼职讲师。 &#x1f4e1;主页地址&#xff1a;【Austin_zhai】 &#x1f646;目的与景愿&#xff1a;旨在于能帮助更多的测试行业人员提升软硬技能&#xff0c;分享行业相关最新信息。…

测试人员如何在项目中开展测试

项目中角色分为&#xff1a;项目经理&#xff08;PM&#xff09;、QA、产品、UI、开发、测试&#xff0c;本文以测试人员视角展开谈谈如何开展测试。 目录 一、尽早介入测试 二、积极与产品人员核对需求 三、提前准备测试用例 四、交叉执行用例 五、提交缺陷注意要点 六…

项目如何提测?

如何提测? 今天是10月24日,一个只有互联网从业者才知道的节日,祝各位苦逼的程序猿节日快乐! 我们处在一个互联网爆发时代, 这个时代需要我们, 我们充满了责任感, 使命感, 我们为之努力奋斗一生的事业. 项目提测对测试工程师来说是再普通不过了. 开发在Dev环境联调, 功能开发…

WEB测试项目实战——1.WEB项目测试备战

项目介绍&#xff1a;B/S架构的web项目 #WEB项目测试备战 目录 文章目录 [toc] ##一、实战路线图 ###(一&#xff09;研发模型——瀑布模型 ###(二&#xff09;测试遵循的原则——W原则 ###(三&#xff09;项目实战课程路线图 ####前期准备-需求评审-设计评审-测试计划-测试架…

缺项目经验的看过来,真实的软件测试实战项目来了

1.web自动化项目 这是一个电商项目&#xff0c;你可以在网站上购买各种宠物。 常见的电商网站操作在这个项目中都可以找到&#xff0c;比如注册&#xff0c;登录&#xff0c;查找商品&#xff0c;选择商品&#xff0c;添加购物车&#xff0c;下单&#xff0c;查看定位&#xf…

一文7个步骤教你搭建测试web测试项目实战环境,

今天小编&#xff0c;给大家总结下web 测试实战的相关内容&#xff0c;一起来学习下吧&#xff01; web项目实战可按顺序依次为&#xff1a;【搭建测试环境】、【需求评审】、【编写测试计划】、【分析测试点.编写测试用例】、【用例评审】、【执行用例提bug】、【测试报告】七…

分享一份软件测试项目(Python项目)

在之前小编分享的众多项目中&#xff0c;以Java项目或PHP项目居多&#xff0c;Python项目很少&#xff0c;但有的小伙伴又想要找Python项目练手。 为了满足小伙伴们的需求&#xff0c;凭实力宠粉&#xff0c;小编这次免费跟大家分享一个Python项目&#xff0c;并附带完整的搭建…

我是如何做软件测试项目的?

最近公司刚完成了一个比较大的项目-单品页模块化&#xff0c;即使用现在比较流行的Twitter Bootstrap进行前端开发。说其大是因为工作量大&#xff0c;开发前期投入约80人日&#xff0c;包括前端开发及PHP开发&#xff0c;且不包括修复bug的时间&#xff0c;测试投入约48人日&a…

我的项目测试

我的项目测试 文章目录 我的项目测试前言一、单元测试二、功能测试1.界面测试2.功能测试&#xff08;1&#xff09;已发布专辑列表功能&#xff08;2&#xff09;播放功能&#xff08;3&#xff09;用户管理功能&#xff08;4&#xff09;音频管理功能&#xff08;5&#xff09…

性能测试项目案例

一、项目介绍与部署 1.1微商城功能介绍 轻商城是一个电商项目&#xff0c;需要综合评估各个项目各个接口的功能&#xff0c;给出优化建议&#xff1b; 功能框架 前台&#xff1a;首页、商品页详情、加入购物车、订单、支付、团购、优惠券&#xff1b;后台&#xff1a;商品管…