- ♂️ 作者:海码007
- 专栏:CesiumforUnreal专栏
- 标题:【obj To 3DTiles 格式转换】 可以自定义经纬高、属性表等参数。
- ❣️ 寄语:书到用时方恨少,事非经过不知难!
- 最后:文章作者技术和水平有限,如果文中出现错误,希望大家能指正,同时有问题的话,欢迎大家留言讨论。
其实我之前也写过两篇博客,分别是介绍 3DTiles格式数据、objTo3DTiles 的文章。但是之前储备的知识还不够,所以今天就重新起稿一份。
本文将分为三个部分开始讲解:
3DTiles格式数据是 OGC 组织进行规范的,显然他们的官网就有对这个数据格式的介绍。只不过是全英的,比较磨人,当然国内也有很多大佬进行翻译总结,这里我就不再赘述,直接上网址:
我试了很多工具,发现还是GitHub上的大佬做的好用,这里就直接放出链接:objTo3d-tiles工具链接。
npm install -g obj23dtiles
Node.js直接去官网下载即可,然后下载完成后打开 Windows 操作系统的 命令行解释器 也就是 cmd 。然后输入刚才的命令,然后再点击回车,就开始安装了。
Node.js 和 npm(Node Package Manager)是两个紧密相关的工具,通常一起使用,但它们有不同的作用。
Node.js:
npm(Node Package Manager):
关系:
总的来说,Node.js 是提供 JavaScript 运行时环境的工具,而 npm 是用于管理 Node.js 模块的工具,二者一同构成了 Node.js 生态系统的基础。
总结:GitHub
上很多开源的工具,会将工具上传到 npm
上,然后我们可以下载 npm
工具,然后直接安装别人上传的工具。也就是说 npm
相当于一个中间站。然后在安装 Node.js
的时候会帮我们安装 npm
工具。
我们直接看如何将 .obj 转换为 .b3dm 格式的瓦片数据。
obj23dtiles -i ./bin/barrel/barrel.obj --tileset
// 在模型目录导出 Batchedbarrel 文件夹
这是官方给的示例
输出的瓦片数据格式如下:是带有 tileset.json 的数据。这是3DTiles数据加载的入口,定义了数据的一下基本信息,包括数据的坐标信息。
源码中给出了一个 customTilesetOptions.json
数据,定义了瓦片的一些信息。
{
"longitude": -1.31968, // 瓦片原点(模型原点 (0,0,0)) 经度的弧度值。
"latitude": 0.698874, // 瓦片原点维度的弧度值。
"transHeight": 0.0, // 瓦片原点所在高度,单位为米。
"region": true, // 使用 region 作为外包体。
"box": false, // 使用 box 作为外包体。
"sphere": false // 使用 sphere 作为外包体。
}
3DTiles瓦片数据使用的是 WGS84 坐标系 。
可以在输出瓦片数据的同时,将 customTilesetOptions.json
数据作为瓦片的参数一起输入。
obj23dtiles -i ./bin/barrel/barrel.obj --tileset -p ./bin/barrel/customTilesetOptions.json
输出结果如下:还是这两个文件,不过现在的瓦片数据已经是带有经纬高信息的数据了。(那么我们如何验证数据的坐标是否正确呢,那就要看本文的第三部分,查看3DTiles瓦片数据)
查看3DTiles数据的方式有很多,我使用的是Cesium官方的Cesium ion工具。
网址:https://cesium.com/platform/cesium-ion/