【obj To 3DTiles 格式转换】 可以自定义经纬高、属性表等参数。

目录

  • 0 引言
  • 1 3DTiles数据
  • 2 objTo3DTiles
    • 2.1 工具的安装
      • 2.1.1 拓展:Node.js 和 npm
    • 2.2 工具的使用
      • 2.2.1 输出成瓦片数据
      • 2.2.2 输出带有坐标参数的瓦片数据
  • 3 查看3DTiles数据

请添加图片描述

  • 🙋‍♂️ 作者:海码007
  • 📜 专栏:CesiumforUnreal专栏
  • 💥 标题:【obj To 3DTiles 格式转换】 可以自定义经纬高、属性表等参数。
  • ❣️ 寄语:书到用时方恨少,事非经过不知难!
  • 🎈 最后:文章作者技术和水平有限,如果文中出现错误,希望大家能指正,同时有问题的话,欢迎大家留言讨论。

0 引言

其实我之前也写过两篇博客,分别是介绍 3DTiles格式数据、objTo3DTiles 的文章。但是之前储备的知识还不够,所以今天就重新起稿一份。

  • 最近使用Cesium插件需要加载很多三维模型数据,如果直接将传统的三维模型格式导入的话,模型还需要制作LOD,通知需要地理配准等一系列工作。
  • 然后最近发现3DTiles格式就是为了解决这些问题被创造出来的。所以研究了一下如何将obj格式数据转换成3DTiles格式。

本文将分为三个部分开始讲解:

  • 3DTiles数据格式介绍
  • 格式转换
  • 转换后查看3DTiles格式数据

1 3DTiles数据

3DTiles格式数据是 OGC 组织进行规范的,显然他们的官网就有对这个数据格式的介绍。只不过是全英的,比较磨人,当然国内也有很多大佬进行翻译总结,这里我就不再赘述,直接上网址:

  • 3DTiles官方文档:https://docs.ogc.org/cs/22-025r4/22-025r4.html#toc5
  • 国内翻译链接:https://blog.csdn.net/weixin_45782925/article/details/124360642?spm=1001.2014.3001.5506
  • 我的文章:https://blog.csdn.net/hhw_hhw/article/details/135103914?spm=1001.2014.3001.5502

2 objTo3DTiles

我试了很多工具,发现还是GitHub上的大佬做的好用,这里就直接放出链接:objTo3d-tiles工具链接。

在这里插入图片描述

2.1 工具的安装

  • 其实我之前使用GitHub的频率很少,而且也不知道怎么部署GitHub上面的工具,所以还是自己摸索了一阵。今天我就手把手教学。
  • 然后这个工具的作者也做了一个中文版的文档,我们直接看:

在这里插入图片描述

  • 文档中写了,开始使用前,确保安装了Node.js。然后运行命令:
npm install -g obj23dtiles

Node.js直接去官网下载即可,然后下载完成后打开 Windows 操作系统的 命令行解释器 也就是 cmd 。然后输入刚才的命令,然后再点击回车,就开始安装了。

  • -g 参数的意思是将工具安装到系统的全局目录,也就是说不管在哪里启动 cmd 命令都可以访问 obj23dtiles 工具。
    在这里插入图片描述

2.1.1 拓展:Node.js 和 npm

Node.js 和 npm(Node Package Manager)是两个紧密相关的工具,通常一起使用,但它们有不同的作用。

  1. Node.js:

    • Node.js 是一个基于Chrome V8引擎的 JavaScript 运行时环境,使 JavaScript 具备了在服务器端运行的能力。
    • 它允许开发者使用 JavaScript 来编写服务器端应用程序,而不仅仅是在浏览器中运行的前端脚本语言。
    • Node.js 提供了一种事件驱动的、非阻塞的 I/O 模型,使其非常适合处理大量并发连接的应用程序。
  2. npm(Node Package Manager):

    • npm 是 Node.js 的包管理工具,用于安装、分享和管理 Node.js 模块。
    • Node.js 模块是可重用的代码单元,可以通过 npm 进行安装,以便在应用程序中使用。
    • npm 还允许开发者将自己的模块发布到 npm 的仓库中,供其他开发者使用。

关系:

  • Node.js 本身提供了一个运行 JavaScript 代码的环境,但它并没有涉及到模块的管理。
  • npm 则是用于管理 Node.js 模块的工具,通过 npm 可以方便地安装、升级、卸载模块,并管理项目所依赖的模块。
  • 当你安装 Node.js 时,npm 通常也会随之安装,因此在大多数情况下,你可以直接使用 npm。

总的来说,Node.js 是提供 JavaScript 运行时环境的工具,而 npm 是用于管理 Node.js 模块的工具,二者一同构成了 Node.js 生态系统的基础。


总结:GitHub 上很多开源的工具,会将工具上传到 npm 上,然后我们可以下载 npm 工具,然后直接安装别人上传的工具。也就是说 npm 相当于一个中间站。然后在安装 Node.js 的时候会帮我们安装 npm 工具。

2.2 工具的使用

2.2.1 输出成瓦片数据

我们直接看如何将 .obj 转换为 .b3dm 格式的瓦片数据。

obj23dtiles -i ./bin/barrel/barrel.obj --tileset
// 在模型目录导出 Batchedbarrel 文件夹

这是官方给的示例

  • obj23dtiles 表示调用的工具名称
  • -i 表示接下来的参数是输入的数据
  • ./bin/barrel/barrel.obj表示是输入数据的路径和文件名
  • –tileset表示输出的是瓦片数据格式

输出的瓦片数据格式如下:是带有 tileset.json 的数据。这是3DTiles数据加载的入口,定义了数据的一下基本信息,包括数据的坐标信息。
在这里插入图片描述

2.2.2 输出带有坐标参数的瓦片数据

源码中给出了一个 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瓦片数据)
在这里插入图片描述

3 查看3DTiles数据

查看3DTiles数据的方式有很多,我使用的是Cesium官方的Cesium ion工具。
网址:https://cesium.com/platform/cesium-ion/

在这里插入图片描述

  1. 登入后,进入 My Asset ,然后添加数据
    在这里插入图片描述
    在这里插入图片描述
  2. 选择 Add files。选择两个文件。
    在这里插入图片描述
    在这里插入图片描述
  3. 选择 3D Tiles 数据类型。然后点击左下角的 Upload 进行数据的上传。
    在这里插入图片描述
  4. 然后回到 My Assets 界面,点击刚才新添加的数据,即可在右侧窗口进行数据的查看。
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥圣诞树(C++)

问题描述 输入样例: 1 3 101 1 2 2 3 输出样例: YES 思路: 这道题还是比较好想的,因为它构造的二叉树是用边连接起来的,不是像之前一样从上到下从左到右按编号构造的,所以可以用邻接表来存每个点还有边&am…

RK3568驱动指南|第九篇 设备模型-第100章 在总线目录下创建属性文件实验

瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和Mali G52 2EE 图形处理器。RK3568 支持4K 解码和 1080P 编码,支持SATA/PCIE/USB3.0 外围接口。RK3568内置独立NPU,可用于轻量级人工…

59.网游逆向分析与插件开发-游戏增加自动化助手接口-文字资源读取类的C++还原

内容来源于:易道云信息技术研究院VIP课 上一个内容:游戏菜单文字资源读取的逆向分析-CSDN博客 之前的内容:接管游戏的自动药水设定功能-CSDN博客 码云地址(master分支):https://gitee.com/dye_your_fing…

基于随机颜色反转合成和双分支学习的单模态内镜息肉分割

Single-Modality Endoscopic Polyp Segmentation via Random Color Reversal Synthesis and Two-Branched Learning 基于随机颜色反转合成和双分支学习的单模态内镜息肉分割背景难点贡献实验方法Color Reversal Strategy(颜色反转策略) 损失函数Thinking…

JDK17 - 开发者视角,从 JDK8 ~ JDK17 都增加了哪些新特性

目录 前言 一、站在开发视角,从 JDK8 升级到 JDK17 都有哪些新特性 1.1、JDK8 新特性 1.1.1、Optional 类 a)简介 b)使用方法 c)使用场景 1.2、JDK9 新特性 1.2.1、Optional - ifPresentOrElse 解决 if-else 1.2.2、Opt…

金和OA c6 uploadfileeditorsave接口存在任意文件上传漏洞

产品简介 金和网络是专业信息化服务商,为城市监管部门提供了互联网监管解决方案,为企事业单位提供组织协同OA系统升开发平台,电子政务一体化平台智慧电商平合等服务 漏洞概述 金和-c6 uploadfileeditorsave 任意文件上传,攻击者…

正则表达式 详解,10分钟学会

大家好,欢迎来到停止重构的频道。 本期我们讨论正则表达式。 正则表达式是一种用于匹配和操作文本的工具,常用于文本查找、文本替换、校验文本格式等场景。 正则表达式不仅是写代码时才会使用,在平常使用的很多文本编辑软件,都…

基于rk3568 Android H265推流SRS低延迟网页播放方案

在音视频领域,融合推流,低码流,低延迟,浏览器H5化是一个降低成本,提升用户体验的重要手段。同时适配现有直播的生态也是一个必要条件。 在满足上述要求的情况下,我做了以下实践,取得了良好的效果…

Linux 进程(六) 环境变量

main函数参数: 这是一个常见的main函数,那么main函数可以带参吗? int main() {return 0; } 答案是可以的! 我们先看这样一段代码,首先给main函数带上两个参数。 然后我们来看输出的结果。 这样一组字符串是命令行解释…

AUTOSAR软件手册文档缩写描述,AUTOSAR_TR_PredefinedNames

由于AUTOSAR文档中的缩写太多,入门者看起开不方便。例如TR、SWS、SRS、EXP模块。 下载链接:https://www.autosar.org/fileadmin/standards/R21-11/FO/AUTOSAR_TR_PredefinedNames.pdf

用邮件及时获取变更的公网IP--------python爬虫+打包成exe文件

参考获取PC机公网IP并发送至邮箱 零、找一个发送邮件的邮箱 本文用QQ邮箱为发送邮箱,网易等邮箱一般也有这个功能,代码也是通用的。 第一步:在设置中找到账户,找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务,点击获…

【MyBatis】配置 SQL 提示(IDEA 代码自动补全)和解决未能解析数据库 Unable to resolve table ‘employee‘ 问题

默认在 MyBatis 中编写 SQL 语句是不识别的。 需要做如下配置: 然后 SQL 语句可以出现提示,但是自己的数据库会报错: 原因是 IDEA 没有和 数据库 建立连接,需要连接数据库(注意:需要具体到某个 Schema&…